首頁  >  文章  >  Java  >  java map的key排序嗎

java map的key排序嗎

angryTom
angryTom原創
2019-11-18 11:46:462028瀏覽

java map的key排序嗎

java map的key排序嗎

java為資料結構中的對應定義了一個介面java.util .Map,他實作了四個類,分別是:HashMap,HashTable,LinkedHashMapTreeMap,Map不允許鍵重複,但允許值重複

1.HashMap:

#最常用的Map,根據鍵的hashcode值來存儲數據,根據鍵可以直接獲得他的值(因為相同的鍵hashcode值相同,在地址為hashcode值的地方存儲的就是值,所以根據鍵可以直接獲得值),具有很快的存取速度,遍歷時,取得資料的順序完全是隨機的,HashMap最多只允許一筆記錄的鍵為null,允許多筆記錄的值為null,HashMap不支援線程同步,即任意時刻可以有多個線程同時寫HashMap,這樣對導致資料不一致,如果需要同步,可以使用synchronziedMap的方法使得HashMap具有同步的能力或者使用concurrentHashMap

#2 .HashTable:

與HashMap類似,不同的是,它不允許記錄的鍵或值為空,支援執行緒同步,即任意時刻只能有一個執行緒寫HashTable,因此也導致HashTable在寫入時比較慢!

3.LinkedHashMap:

#是HahsMap的子類,但它保持了記錄的插入順序 ,遍歷時先得到的肯定是先插入的,也可以在構造時帶參數,按照應用次數排序,在遍歷時會比HahsMap慢,不過有個例外,當HashMap的容量很大,實際數據少時,遍歷起來會比LinkedHashMap慢(因為它是鏈啊),因為HashMap的遍歷速度和它容量有關,LinkedHashMap遍歷速度只與數據多少有關

4.TreeMap:

實作了sortMap接口,能夠把保存的記錄按照鍵排序(預設升序),也可以指定排序比較器,遍歷時得到的資料是排過序的

什麼情況用什麼類型的Map:

在Map中插入,刪除,定位元素:HashMap

要依照自訂順序或自然順序遍歷:TreeMap

要求輸入順序和輸出順序相同:LinkedHashMap

php中文網,大量的免費Java入門教學,歡迎線上學習! 

以上是java map的key排序嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn