Map集合:
|--Hashtable:底層是哈希表數(shù)據(jù)結(jié)構(gòu),是線程同步的。不可以存儲(chǔ)null鍵,null值。
|--HashMap:底層是哈希表數(shù)據(jù)結(jié)構(gòu),是線程不同步的??梢源鎯?chǔ)null鍵,null值。替代了Hashtable.
|--TreeMap:底層是二叉樹(shù)結(jié)構(gòu),可以對(duì)map集合中的鍵進(jìn)行指定順序的排序。
Map集合存儲(chǔ)和Collection有著很大不同:
Collection一次存一個(gè)元素;Map一次存一對(duì)元素。
Collection是單列集合;Map是雙列集合。
Map中的存儲(chǔ)的一對(duì)元素:一個(gè)是鍵,一個(gè)是值,鍵與值之間有對(duì)應(yīng)(映射)關(guān)系。
特點(diǎn):要保證map集合中鍵的唯一性。
1,添加。
put(key,value):當(dāng)存儲(chǔ)的鍵相同時(shí),新的值會(huì)替換老的值,并將老值返回。如果鍵沒(méi)有重復(fù),返回null。
void putAll(Map);
2,刪除。
void clear():清空
value remove(key) :刪除指定鍵。
3,判斷。
boolean isEmpty():
boolean containsKey(key):是否包含key
boolean containsValue(value) :是否包含value
4,取出。
int size():返回長(zhǎng)度
value get(key) :通過(guò)指定鍵獲取對(duì)應(yīng)的值。如果返回null,可以判斷該鍵不存在。當(dāng)然有特殊情況,就是在hashmap集合中,是可以存儲(chǔ)null鍵null值的。
Collection values():獲取map集合中的所有的值。
5,想要獲取map中的所有元素:
原理:map中是沒(méi)有迭代器的,collection具備迭代器,只要將map集合轉(zhuǎn)成Set集合,可以使用迭代器了。之所以轉(zhuǎn)成set,是因?yàn)閙ap集合具備著鍵的唯一性,其實(shí)set集合就來(lái)自于map,set集合底層其實(shí)用的就是map的方法。
★ 把map集合轉(zhuǎn)成set的方法:
Set keySet();
Set entrySet();//取的是鍵和值的映射關(guān)系。
Entry就是Map接口中的內(nèi)部接口;
為什么要定義在map內(nèi)部呢?entry是訪問(wèn)鍵值關(guān)系的入口,是map的入口,訪問(wèn)的是map中的鍵值對(duì)。
本文版權(quán)歸黑馬程序員Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:黑馬程序員Java培訓(xùn)學(xué)院
首發(fā):http://java.itheima.com/