1. 程式人生 > >HashTable,HashMap,TreeMap有什麼不同

HashTable,HashMap,TreeMap有什麼不同

HashMap:一種儲存鍵/值關聯的資料結構。適用於在Map中插入、刪除和定位元素。
TreeMap:一種鍵/值有序排列的對映表。整體順序是由鍵的順序關係決定的,通過Comparable或Comparator來決定。
HashTable:與HashMap類的作用一樣,不過HashTable是同步的,現在是集合框架中的遺留類。如果對同步性沒有任何要求,就適用HashMap,如果需要併發訪問,就使用ConcurrentHashMap。

ConcurrentHashMap和HashTable的區別

HashTable和ConcurrentHashMap都可以用於多執行緒的環境,但是當HashTable的大小增加到一定的時候,效能會急劇下降,因為迭代時需要被鎖定很長的時間。而ConcurrentHashMap引入了分割(segmentation),不論它變得多麼大,僅僅需要鎖定map的某個部分,而其他執行緒不需要等到迭代完成才能訪問Map。簡而言之,在迭代的過程中,ConcurrentHashMap僅僅鎖定map的某個部分,而HashTable會鎖定整個map。