java学习笔记(6)——Map 集合

Map集合

双列集合,与Collection集合不同(单列集合)。

Map<K, V>

K-此映射所维护的键的类型

V-映射值的类型

一个对象包括两个值(一个键,一个值)

值可以重复,键不能重复

java学习笔记(6)——Map 集合

特点:

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

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

3.Map集合中的元素,key不允许重复,value允许重复

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

HashMap<K,V>

HashMap<K, V> implements Map<K, V>

底层是一个哈希表结构,HashSet就是new的HashMap,但是只使用了K

同步多线程,速度快

子类 LinkedHashMap

LinkedHashMap<K, V> extends HashMap<K, V>

Map接口的哈希表和链表列表实现,可预知的迭代顺序。

特点:

1.底层:哈希表 + 链表(保证迭代的顺序)

2.有序集合

Map接口中常用方法

V put(K k, V value);

将指定的值与此映射中的指定键关联

返回值V:

存储的时候,key不重复,返回值null

key重复,用新的value替换map中重复的value,返回被替换的value

Map<String, String> map = new HashMap<>();

String hh = map.put("lichen", "gbb");
System.out.println(map);
{lichen=gbb}

System.out.println("V1 = " + hh);
 // V1 = null


String hh2 = map.put("lichen", "gbb222");
System.out.println(map);
 // {lichen=gbb222}
 
System.out.println("v2 = " + hh2);
 // v2 = gbb
 

        map.put("000", "gbb");
        map.put("123", "gbb");
        map.put("222", "gbb");

        System.out.println(map);
 // {000=gbb, 123=gbb, 222=gbb}

V get(Object key);

返回指定键所映射的值,如果此映射不包含该键的映射关系,返回null

V remove(Object key);

如果存在一个键的映射关系,则将其从此映射中移除

Map<String, Integer> map = new HashMap<>();
        map.put("123", 168);
        map.put("456", 178);
        map.put("789", 188);
        System.out.println(map);

        Integer v1 = map.remove("123");
        System.out.println(map);
        System.out.println(v1);
        
        // {123=168, 456=178, 789=188}
        // {456=178, 789=188}
        // 168

boolean containsKey(Object key);

如果此映射包含指定键的映射关系,返回true

Map<String, Integer> map = new HashMap<>();
        map.put("123", 111);
        map.put("456", 222);
        map.put("789", 333);

        boolean b = map.containsKey("123");
        System.out.println(b);   //true
        boolean b1 = map.containsKey("1323");
        System.out.println(b1);  //false

Set<K> keySet();

返回此映射中包含的键的Set视图

Set<Map.Entry<K, V>> entrySet();

返回此映射包含的映射关系的Set视图

原文 

https://segmentfault.com/a/1190000023312107

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » java学习笔记(6)——Map 集合

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址