Java爲數據結構中的映射定義了一個接口java.util.Map,包括3個實現類:HashMap、HashTable和TreeMap。
HashMap和HashTable都採用hash法進行索引,但二者還有一些區別。
HashMap | HashTable | |
安全性 | 不安全,不同步 | 安全,同步 |
key值 | 允許爲null | 不允許爲null |
contains方法 | 有containsValue | 有contains,containsKey,containsValue |
父類 | AbstractMao | Dictionary |
hash數組大小 | 默認是16,擴容是2*old | 默認是11,擴容方式是old*2+1 |
(1)HashMap存入鍵值對時是隨機的
(2)TreeMap實現了SortMap接口,將元素根據可以排序
(3)LinkedHashMap是HashMap的子類,輸入和輸出相同
(4)WeakHashMap的key採用的是“弱引用”,只要WeakHashMap的key不再被外部引用,就被垃圾回收器回收。HashMap的key是“強引用”,只有key從hashMap中刪除,纔可以被垃圾回收器回收。