HashMap
hashMap是最常用的Map,根據鍵的HashCode值儲存數據,可以根據鍵直接取得它的值,具有很快的訪問速度,遍歷時候的順序是完全隨機的。 HashMap只允許一個鍵為Null,允許多個值為Null。
特性: 完全隨機
優點: 隨機訪問,取值速度快
缺點: 多個執行緒同時寫HashMap可能導致資料不一致,如果需要同步,使用Collection的synchronizedMap
方法或使用ConcurrentHashMap
##LinkedHashMap##LinkedHashMap是HashMap的子類,保存了記錄的插入順序,與HashMap的隨機遍歷不同,在用Iterator遍歷的時候,先得到的記錄肯定是先插入的,類似python中的OrderedDict。
遍歷速度會比HashMap慢,不過有一種情況例外: 當HashMap的容量很大,實際資料很少時, 因為HashMap的遍歷速度和它的容量有關,而LinkedHashMap只跟實際資料量有關。
TreeMapTreeMap實作SortMap接口,能夠將它保存的記錄按鍵排序,預設是按鍵的升序排列,也可以指定排序的比較器,遍歷TreeMap的時候,得到的記錄是依照鍵排過序的。
根據資料選擇Map一般情況下,我們用的最多的是HashMap,在Map中插入、刪除和定位元素,HashMap 是最好的選擇。但如果您要按自然順序或自訂順序遍歷鍵,那麼TreeMap會更好。如果需要輸出的順序和輸入的相同,那麼用LinkedHashMap可以實現,它還可以按讀取順序來排列。
推薦教學:
Java教學以上是java中HashMap和LinkedHashMap的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!