ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Map常用子类与Map接口中的常用方法

2022-07-06 21:02:13  阅读:134  来源: 互联网

标签:Map 常用 HashMap map 子类 put key 集合


Map常用子类
通过查看Map接口描述,看到Map有多个子类,这里我们主要讲解常用的HashMap集合、LinkedHashMap集合。
HashMap<K,V>∶存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
.LinkedHashMap<K,V> :HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
tips : Map接口中的集合都有两个泛型变量<KV>,在使用时,要为两个泛型变量赋予数据类型。两个泛型变量<K,V>的数据类型可以相同,也可以不同。

.java.util. Map<k, v>集合Map集合的特点∶

1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)

2.Map集合中的元素,key和valuie的数据类型可以相同,也可以不同

3.Aap集合中的元素,key是不允许重复的, value是可以重复的

4 .Map集合中的元素,key和value是——对应

java.util.HoshMap<k, v>集合implements Map<k, v>接口HashMap集合的特点:

1.HashMap集合底层是哈希表:查询的速度特别的快

DxI.8之前:数组+单回链表

DK1.8之后:数组+里向链表/红黑树(链表的长度超过8):提高查询的速度2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致java.util.LinkedHashAap<k , v>集合extends HashAap<k , v>集合

linkedHashMap的特点:

1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)

2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的

 


Map接口中的常用方法

Map接口中定义了很多方法,常用的如下:

public v put(K key,v value):把指定的键与指定的值添加到Map集合中。

public v remove(0bject key) :把指定的键所对应的键值对元素在Map集合中删除,返回被删除元素的值。public v get(object key)根据指定的键,在Map集合中获取对应的值。

boolean containsKey(object key)判断集合中是否包含指定的键。|public Set<K> keySet():获取Map集合中所有的键,存储到Set集合中。

public Set<Map.Entry<K,v>> entrySet():获取到Map集合中所有的键值对对象的集合(Set集合)。

package Demo_Map;

import java.util.HashMap;

/*
java.util. Map<k, v>集合Map集合的特点∶
1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
2.Map集合中的元素,key和valuie的数据类型可以相同,也可以不同
3.Aap集合中的元素,key是不允许重复的, value是可以重复的
4 .Map集合中的元素,key和value是——对应
java.util.HoshMap<k, v>集合implements Map<k, v>接口HashMap集合的特点:
1.HashMap集合底层是哈希表:查询的速度特别的快
DxI.8之前:数组+单回链表
DK1.8之后:数组+里向链表/红黑树(链表的长度超过8):提高查询的速度2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致java.util.LinkedHashAap<k , v>集合extends HashAap<k , v>集合
linkedHashMap的特点:
1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
 */
public class Demo01_Map_01 {
    public static void main(String[] args) {
        show01();
    }
    //public V remove(Object key):把指定的键所对应的键值对元素在Nap集合中删除,返回被删除元素的值。[
                //返回值:v
    //key存在, v返回被删除的值key不存在, v返回null
    private static void show01() {
        HashMap<String, Integer> map = new HashMap<>();
        map.put("西施",175);
        map.put("镜",180);
        map.put("戈雅",175);
        System.out.println(map);

        Integer wzj = map.remove("王昭君");
        System.out.println("v1"+wzj);
        System.out.println(map);

        int v1 =map.remove("钟无艳"); //自动拆箱  NullPointerException
        System.out.println("v2:"+v1);
        System.out.println(map);
    }

    /*
    public V put(K key,v value):把指定的键与指定的值添加到Map集合中。
   返回值:v
存储键值对的时候,key不重复,返回值v是null
存储键值对的时候,key重复,会使用新的value替换map中重复的vaLue,返回被替换的vaLue值
     */
    private static void show() {
        //创建Map集合对象,多态
        HashMap<String, String> map = new HashMap<>();
        String put1 = map.put("李晨", "范冰冰");
        System.out.println("v1"+put1);
        String put2 = map.put("李晨", "范冰冰");
        System.out.println("v2"+put2);

        System.out.println(map);

        map.put("澜","蔡文姬");
        map.put("吕布","貂蝉");
        map.put("刘备","孙尚香");

        System.out.println(map);
    }
}

 

package Demo_Map;

import java.util.HashMap;

/*
java.util. Map<k, v>集合Map集合的特点∶
1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value)
2.Map集合中的元素,key和valuie的数据类型可以相同,也可以不同
3.Aap集合中的元素,key是不允许重复的, value是可以重复的
4 .Map集合中的元素,key和value是——对应
java.util.HoshMap<k, v>集合implements Map<k, v>接口HashMap集合的特点:
1.HashMap集合底层是哈希表:查询的速度特别的快
DxI.8之前:数组+单回链表
DK1.8之后:数组+里向链表/红黑树(链表的长度超过8):提高查询的速度2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致java.util.LinkedHashAap<k , v>集合extends HashAap<k , v>集合
linkedHashMap的特点:
1.LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2.LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
*/
public class Demo01_Map_01 {
public static void main(String[] args) {
show01();
}
//public V remove(Object key):把指定的键所对应的键值对元素在Nap集合中删除,返回被删除元素的值。[
//返回值:v
//key存在, v返回被删除的值key不存在, v返回null
private static void show01() {
HashMap<String, Integer> map = new HashMap<>();
map.put("西施",175);
map.put("镜",180);
map.put("戈雅",175);
System.out.println(map);

Integer wzj = map.remove("王昭君");
System.out.println("v1"+wzj);
System.out.println(map);

int v1 =map.remove("钟无艳"); //自动拆箱 NullPointerException
System.out.println("v2:"+v1);
System.out.println(map);
}

/*
public V put(K key,v value):把指定的键与指定的值添加到Map集合中。
返回值:v
存储键值对的时候,key不重复,返回值v是null
存储键值对的时候,key重复,会使用新的value替换map中重复的vaLue,返回被替换的vaLue值
*/
private static void show() {
//创建Map集合对象,多态
HashMap<String, String> map = new HashMap<>();
String put1 = map.put("李晨", "范冰冰");
System.out.println("v1"+put1);
String put2 = map.put("李晨", "范冰冰");
System.out.println("v2"+put2);

System.out.println(map);

map.put("澜","蔡文姬");
map.put("吕布","貂蝉");
map.put("刘备","孙尚香");

System.out.println(map);
}
}

标签:Map,常用,HashMap,map,子类,put,key,集合
来源: https://www.cnblogs.com/x3449/p/16452483.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有