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中文網其他相關文章!