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