常有Map與Collection什么關(guān)系?
沒(méi)什么關(guān)系,都是集合的頂層接口,沒(méi)有直接關(guān)系。
Map體系沒(méi)有實(shí)現(xiàn)Iterator接口。
Map體系的特殊結(jié)果,K,V存在。 K鍵唯一。
Map體系的常用實(shí)現(xiàn)類:
HashMap: 底層實(shí)現(xiàn)哈希表,允許Key值和Value值為null,線程不同步的。
TreeMap : 底層是二叉樹(shù),不允許key為null(因?yàn)門reeMap要排序,null不能排序),線程不同步,放入的元素需要具有可排序性。
還有一個(gè)HashTable(已經(jīng)不使用了): 和HashMap的原理與使用幾乎是一樣的,但是是線程同步的,所以效率不高,而且不允許key值和value值為null.
值得一提的是 :
HashSet的底層實(shí)現(xiàn)是HashMap,將Set的值作為key存入HashMap,然后HashMap的Value值都存為同一個(gè)無(wú)關(guān)對(duì)象,就實(shí)現(xiàn)了HashSet,并且保證了數(shù)據(jù)唯一性,因?yàn)镠ashMap鍵值需要唯一。
TreeSet的底層實(shí)現(xiàn)是TreeMap,原理與方式與上相同。
hashMap和TreeMap雖然保證鍵唯一,但是如果有相同的鍵值進(jìn)來(lái),后來(lái)的值會(huì)覆蓋上一次的值。
比如
map.put(1,"哈哈");
map.put(1,"呵呵");
那么取1結(jié)果是呵呵“?!?/p>
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注