Map汇合

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

Map<K, V>

K-此映射所保护的键的类型
V-映射值的类型
一个对象包含两个值(一个键,一个值)
值能够反复,键不能反复

特点:

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 = nullString 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视图