map集合的見解 排序

2022-06-10 04:27:07 字數 1129 閱讀 9935

map是鍵值對的集合介面,它的實現類主要包括:hashmap,treemap,hashtable以及linkedhashmap等

hashmap:我們最常用的map,它根據key的hashcode 值來儲存資料,根據key可以直接獲取它的value,同時它具有很快的訪問速度。hashmap最多隻允許一條記錄的key值為null(多條會覆蓋);允許多條記錄的value為 null。非同步的。

原始碼分析:

1、hashmap 是按照 hash演算法(位移)求得hash值進行的離散儲存,因而決定了它是無序的

2、hashmap的擴容,在新增資料put時,當容量大於等0.75時,進行擴容;並且是2倍的擴容

3、hashmap 鍵值可以為null

4、hashmap 的key相同時,不是覆蓋,key是舊的key 還是以前的hash值儲存位置,而value則是替換新的。在put時會返回舊的value

treemap: 能夠把它儲存的記錄根據key排序,預設是按公升序排序,也可以指定排序的比較器,當用iterator 遍歷treemap時,得到的記錄是排過序的。treemap不允許key的值為null。非同步的。

hashtable: 與 hashmap類似,不同的是:key和value的值均不允許為null;它支援執行緒的同步,即任一時刻只有乙個執行緒能寫hashtable,因此也導致了hashtale在寫入時會比較慢。

linkedhashmap: 儲存了記錄的插入順序,在用iterator遍歷linkedhashmap時,先得到的記錄肯定是先插入的.在遍歷的時候會比hashmap慢。key和value均允許為空,非同步的。

對於排序,可以根據實現不同的介面,也可以自定義介面寫排序,

如下是hashmap排序實現:

public

class

hashmaptest

});}

}}

執行結果:

a:aaaaa 

b:bbbbb 

c:ccccc 

d:ddddd

常用map的操作和map集合排序

在講解map排序之前,我們先來稍微了解下map。map是鍵值對的集合介面,它的實現類主要包括 hashmap,treemap,hashtable以及linkedhashmap等。其中這四者的區別如下 簡單介紹 1.hashmap 我們最常用的map,它根據key的hashcode 值來儲存資料,根據...

對map集合進行排序

在講解map排序之前,我們先來稍微了解下map。map是鍵值對的集合介面,它的實現類主要包括 hashmap treemap hashtable linkedhashmap。其中這四者的區別如下 簡單介紹 hashmap 我們最常用的map,它根據key的hashcode值來儲存資料,根據key可以...

對map集合進行排序

今天做統計時需要對x軸的地區按照地區 areacode 進行排序,由於在構建xmldata使用的map來進行資料統計的,所以在統計過程中就需要對map進行排序。在講解map排序之前,我們先來稍微了解下map。map是鍵值對的集合介面,它的實現類主要包括 hashmap,treemap,hashtab...