hashmap和linkedhashmap的區別

2022-03-13 20:20:19 字數 669 閱讀 2241

1樓:匿名使用者

一般情況下,我們用的最多的是hashmap,在map 中插入、刪除和定位元素,hashmap 是最好的選擇。但如果您要按自然順序或自定義順序遍歷鍵,那麼treemap會更好。如果需要輸出的順序和輸入的相同,那麼用linkedhashmap 可以實現,它還可以按讀取順序來排列.

hashmap是一個最常用的map,它根據鍵的hashcode值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。hashmap最多隻允許一條記錄的鍵為null,允許多條記錄的值為null。

hashmap不支援執行緒同步,即任一時刻可以有多個執行緒同時寫hashmap,可能會導致資料的不一致性。如果需要同步,可以用collections的synchronizedmap方法使hashmap具有同步的能力。

hashtable與hashmap類似,不同的是:它不允許記錄的鍵或者值為空;它支援執行緒的同步,即任一時刻只有一個執行緒能寫hashtable,因此也導致了hashtable在寫入時會比較慢。

linkedhashmap儲存了記錄的插入順序,在用iterator遍歷linkedhashmap時,先得到的記錄肯定是先插入的。

在遍歷的時候會比hashmap慢treemap能夠把它儲存的記錄根據鍵排序,預設是按升序排序,也可以指定排序的比較器。當用iterator遍歷treemap時,得到的記錄是排過序的。

hashmap多執行緒為什麼造成死迴圈

一直以來只是知道hashmap是執行緒不安全的,但是到底hashmap為什麼執行緒不安全,多執行緒併發的時候在什麼情況下可能出現問題?hashmap底層是一個entry陣列,當發生hash衝突的時候,hashmap是採用連結串列的方式來解決的,在對應的陣列位置存放連結串列的頭 併發的hashmap為...

使用hashmap向裡面新增資訊時呼叫函式新增總是從v

還是沒明白,你問得是什麼問題,你用qq問我吧 從資料庫中查出兩列資料,返回的是一個hashmap,怎麼把其中的一列作為顯示值一列作為value,資料庫是oracle 1 規範襲的話就寫bean物件,bai迴圈讀取資料庫,每一行資料就創du建一個物件zhi,然後將物件存到list集合中,然後到 dao...

hashmap適用於多執行緒還是單執行緒環境嗎

多執行緒同時訪問資料時,需要互斥訪問。否則訪問的結果不可預期。hashmap為什麼不是執行緒安全的 此實現不是同步的。如果多個執行緒同時訪問一個雜湊映 射,而其中至少一個執行緒從結版構上修改了該映權射,則它必須 保持外部同步。結構上的修改是指新增或刪除一個或多個對映關係的任何操作 僅改變與例項已經包...