更新時間:2022-08-22 11:20:49 來源:動力節點 瀏覽1301次
Java的MAP集合是什么?動力節點小編來為大家進行詳細介紹。
1.Map是一個雙列集合,一個元素包含兩個值(一個key,一個value)
2.Map集合中的元素,key和value的數據類型可以相同,也可以不同
3.Map中的元素,key不允許重復,value可以重復
4.Map里的key和value是一一對應的。
1.public V put (K key,V value) 把指定的鍵和值添加到Map集合中,返回值是V
如果要存儲的鍵值對,key不重復返回值V是null
如果要存儲的鍵值對,key重復返回值V是被替換的value值
2. public V remove(Object key)把指定鍵所對應的鍵值對元素,在Map集合中刪除,返回被刪除的元素的值。 返回值:V 。如果key存在,返回被刪除的值,如果key不存在,返回null
3.public V remove (Object key):根據指定的鍵 在Map集合中獲取對應的值
如果key存在,返回對應的value值,如果key不存在,返回null
4.boolean containsKey( Object key)判判斷集合中是否包含指定的鍵包含返回true,不包含返回false
1.通過鍵找值的方法;
使用了setKey方法,將Map集合中的key值,存儲到Set集合,用迭代器或foreach循環遍歷Set集合來獲取Map集合的每一個key,并使用get(key)方法來獲取value值
2.使用Entry對象遍歷
Map.Entry<K,V>,,在Map接口中有一個內部接口Entry(內部類)
作用:當集合一創建,就會在Map集合中創建一個Entry對象,用來記錄鍵與值(鍵值對對象,鍵值的映射關系)
有了Entry對象就可以使用Map中的entrySet方法,把Map集合中的多個Entry對象存入一個Set集合來遍歷Set集合,獲取Set集合中每一個Entry對象,然后可以使用Entry中的兩個方法getKey和getValue來分別獲取鍵和值。
代碼步驟:
1.HashMap
(1)特點:
1)HashMap底是哈希表,查詢速度非常快(jdk1.8之前是數組+單向鏈表,1.8之后是數組+單向鏈表/紅黑樹 ,鏈表長度超過8時,換成紅黑樹)
2)HashMap是無序的集合,存儲元素和取出元素的順序有可能不一致
3)集合是不同步的,也就是說是多線程的,速度快
(2)HashMap存儲自定義類型鍵值
HashMap存儲自定義類型鍵值,Map集合保證key是唯一的:作為key的元素,必須重寫hashCode方法和equals方法,以保證key唯一
2.LinkedHashMap
HashMap有子類LinkedHashMap:LinkedHashMap extends HashMap
是Map接口的哈希表和鏈表的實現,具有可預知的迭代順序(有序)
底層原理:哈希表+鏈表(記錄元素順序)
特點:
(1)LinkedHashMap底層是哈希表+鏈表(保證迭代的順序)
(2)LinkedHashMap是一個有序的集合,存儲元素和取出元素的順序一致
改進之處就是:元素存儲有序了
3.Hashtable
Hashtable implements Map
Hashtable:底層也是哈希表,是同步的,是一個單線程結合,是線程安全的集合,速度慢
HashMap:底層也是哈希表,但是線程不安全的集合,是多線程集合,速度快
HashMap(還有之前學的所有集合):都可以存儲null鍵,null值
Hashtable:不能存儲null鍵,null值
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習