雙列集合,與Collection集合不一樣(單列集合)。多線程
K-此映射所維護的鍵的類型
V-映射值的類型
一個對象包括兩個值(一個鍵,一個值)
值能夠重複,鍵不能重複spa
1.Map是一個雙列集合,一個元素包含兩個值(一個key,一個value)
2.Map集合中的元素,key和value的數據類型能夠相同,也能夠不一樣。
3.Map集合中的元素,key不容許重複,value容許重複
4.Map集合中的元素,key和value是一一對應的線程
HashMap<K, V> implements Map<K, V>
底層是一個哈希表結構,HashSet就是new的HashMap,可是隻使用了K
不一樣步,多線程,速度快code
LinkedHashMap<K, V> extends HashMap<K, V>對象
Map接口的哈希表和鏈表列表實現,可預知的迭代順序。
特色:
1.底層:哈希表 + 鏈表(保證迭代的順序)
2.有序集合blog
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);
返回指定鍵所映射的值,若是此映射不包含該鍵的映射關係,返回nullrem
V remove(Object key);
若是存在一個鍵的映射關係,則將其今後映射中移除get
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視圖