Hashtable,HashMap和TreeMap的區(qū)別
Hashtable,HashMap和TreeMap的區(qū)別
HashMap是最常用的Map實現(xiàn),基于鍵的hashCode值存儲數(shù)據(jù),具有快速的訪問速度。它最多只允許一條記錄的鍵為null,不允許多條記錄的值為null。HashMap不支持線程同步,可能導(dǎo)致數(shù)據(jù)不一致,若需要同步,可用Collections.synchronizedMap(HashMap map)方法。Hashtable與HashMap類似,但不允許鍵和值為null,支持線程同步,因此在寫入時較慢。LinkedHashMap保留插入順序,遍歷時先得到的記錄是先插入的,遍歷速度比HashMap慢。它繼承了HashMap的所有特性。TreeMap根據(jù)鍵排序,默認升序,可指定比較器。遍歷得到的記錄是排序后的。鍵和值不能為空。
導(dǎo)讀HashMap是最常用的Map實現(xiàn),基于鍵的hashCode值存儲數(shù)據(jù),具有快速的訪問速度。它最多只允許一條記錄的鍵為null,不允許多條記錄的值為null。HashMap不支持線程同步,可能導(dǎo)致數(shù)據(jù)不一致,若需要同步,可用Collections.synchronizedMap(HashMap map)方法。Hashtable與HashMap類似,但不允許鍵和值為null,支持線程同步,因此在寫入時較慢。LinkedHashMap保留插入順序,遍歷時先得到的記錄是先插入的,遍歷速度比HashMap慢。它繼承了HashMap的所有特性。TreeMap根據(jù)鍵排序,默認升序,可指定比較器。遍歷得到的記錄是排序后的。鍵和值不能為空。
Java中Map接口用于存儲鍵值對,根據(jù)鍵可以直接獲取值,不允許鍵重復(fù),值可以重復(fù)。實現(xiàn)該接口的類有HashMap、Hashtable、LinkedHashMap和TreeMap。HashMap是最常用的Map實現(xiàn),基于鍵的hashCode值存儲數(shù)據(jù),具有快速的訪問速度。它最多只允許一條記錄的鍵為null,不允許多條記錄的值為null。HashMap不支持線程同步,可能導(dǎo)致數(shù)據(jù)不一致,若需要同步,可用Collections.synchronizedMap(HashMap map)方法。Hashtable與HashMap類似,但不允許鍵和值為null,支持線程同步,因此在寫入時較慢。LinkedHashMap保留插入順序,遍歷時先得到的記錄是先插入的,遍歷速度比HashMap慢。它繼承了HashMap的所有特性。TreeMap根據(jù)鍵排序,默認升序,可指定比較器。遍歷得到的記錄是排序后的。鍵和值不能為空。示例代碼展示了如何初始化和輸出Map的內(nèi)容。如測試HashMap,可以插入鍵值對并輸出。遍歷Map有兩種方法:一種是通過keySet()方法獲取鍵集合,再使用迭代器取出鍵并獲取對應(yīng)值;另一種是使用entrySet()方法獲取記錄集合,通過Map.Entry對象獲取鍵和值。示例代碼還展示了如何清空Map、檢查鍵值是否存在、刪除鍵對應(yīng)的記錄以及獲取記錄數(shù)等操作。
Hashtable,HashMap和TreeMap的區(qū)別
HashMap是最常用的Map實現(xiàn),基于鍵的hashCode值存儲數(shù)據(jù),具有快速的訪問速度。它最多只允許一條記錄的鍵為null,不允許多條記錄的值為null。HashMap不支持線程同步,可能導(dǎo)致數(shù)據(jù)不一致,若需要同步,可用Collections.synchronizedMap(HashMap map)方法。Hashtable與HashMap類似,但不允許鍵和值為null,支持線程同步,因此在寫入時較慢。LinkedHashMap保留插入順序,遍歷時先得到的記錄是先插入的,遍歷速度比HashMap慢。它繼承了HashMap的所有特性。TreeMap根據(jù)鍵排序,默認升序,可指定比較器。遍歷得到的記錄是排序后的。鍵和值不能為空。
為你推薦