HashMap Hashtable区别
生活随笔
收集整理的這篇文章主要介紹了
HashMap Hashtable区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?HashMap 和 Hashtable 是 Map 接口的兩個典型實現類
?區別:
? ? ?–Hashtable 是一個古老的 Map 實現類,不建議使用
? ? ?–Hashtable 是一個線程安全的 Map 實現,但 HashMap 是線程不安全的。
? ? ?–Hashtable 不允許使用 null 作為 key 和 value,而 HashMap 可以
?與 HashSet 集合不能保證元素的順序的順序一樣,Hashtable 、HashMap 也不能保證其中 key-value 對的順序
?Hashtable 、HashMap 判斷兩個 Key 相等的標準是:兩個Key 通過 equals 方法返回 true,hashCode 值也相等。
TreeMap
?TreeMap 存儲 Key-Value 對時,需要根據 Key 對 key-value 對進行排序。TreeMap 可以保證所有的 Key-Value 對處于有序狀態。 ?TreeMap 的 Key 的排序: –自然排序:TreeMap 的所有的 Key 必須實現 Comparable 接口,而且所有的 Key 應該是同一個類的對象,否則將會拋出ClasssCastException –定制排序:創建 TreeMap 時,傳入一個 Comparator對象,該對象負責對 TreeMap 中的所有 key 進行排序。此時不需要 Map 的 Key 實現 Comparable 接口
?Hashtable 、HashMap 判斷兩個 Value相等的標準是:兩個Value 通過 equals 方法返回 true
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?相關介紹
LinkedHashMap
?LinkedHashMap 是 HashMap 的子類 ?LinkedHashMap 可以維護 Map 的迭代順序:迭代順序與 Key-Value 對的插入順序一致
Properties
?Properties 類是 Hashtable 的子類,該對象用于處理屬性文件 ?由于屬性文件里的 key、value 都是字符串類型,所以properties 里的 Key 和 Value 都是字符串類型的
TreeMap
?TreeMap 存儲 Key-Value 對時,需要根據 Key 對 key-value 對進行排序。TreeMap 可以保證所有的 Key-Value 對處于有序狀態。 ?TreeMap 的 Key 的排序: –自然排序:TreeMap 的所有的 Key 必須實現 Comparable 接口,而且所有的 Key 應該是同一個類的對象,否則將會拋出ClasssCastException –定制排序:創建 TreeMap 時,傳入一個 Comparator對象,該對象負責對 TreeMap 中的所有 key 進行排序。此時不需要 Map 的 Key 實現 Comparable 接口
總結
以上是生活随笔為你收集整理的HashMap Hashtable区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ArrayList和Vector的异同
- 下一篇: Enumeration和Iterator