java的集合對比----Map

來源:互聯網
上載者:User

標籤:

java集合另一個大介面就是Map,與Collection最大的不同就是,Collection儲存的是一個對象,而Map儲存的是一對對象,即key—Value的形式儲存,key是不能重複的。能把Map執行個體化的類有4個: HashMap,Hashtable,WeakHashMap,TreeMap。

Map的遍曆,是先通過entrySet()擷取他set集合,同理,keySet()擷取他的key的set集合,values()擷取他的value的set集合,再通過set集合取Iterator進行遍曆。

HashMap

他有Map的所有特性,key 和 value 都是可以為null的。不是安全執行緒的,如果key重複了,那麼後一個key的value會覆蓋前一個key的value,反正儲存的集合中,key是不會有重複的。他有個初始容量(16) 和載入因子(預設為0.75),他有一個閾值(初始容量 * 載入因子),如果size超過這個閾值,那麼容量就 x 2。

Hashtable

感覺他和HashMap差不多,Hashtable 的初始容量是11,每次size增加 x2 +1個。key和value都不能為null, 他的安全執行緒的。他的遍曆順序和HashMap是反的,HashMap是從前向後,而Hashtable是從後向前。他多了一種遍曆方式,Enumeration。

TreeMap

感覺他就是一個key有順序的key-value集合,他的key不能是null,value可以。他也不是安全執行緒的。

WeakHashMap

 

他和HashMap差不多,但是他的鍵是弱鍵,會被GC回收。

最後,若想把線程不安全的集合變成安全的,用 Collections.synchronizedMap,Collections.synchronizedSet,Collections.synchronizedList函數是一種解決辦法。

java的集合對比----Map

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.