常用的map有hashmap,treemap,linkedhashmap
hashmap:最常用的map,根據key的hashcode值來儲存資料,根據key可以直接獲取它的value,具有很快的訪問速度。hashmap最多隻允許一條記錄的key值為null(多條會覆蓋);允許多條記錄的value為null。非執行緒安全
treemap: 根據key排序,預設是按公升序排序,也可以指定排序的比較器,遍歷treemap時,得到的記錄是排過序的。treemap不允許key的值為null。非執行緒安全
linkedhashmap: 插入順序,遍歷linkedhashmap時,先得到的記錄肯定是先插入的。繼承hashmap,非執行緒安全
treemap只能根據key進行排序,treemap本身是個二叉樹,元素的順序是由key的值決定的
treemap內部預設有個comparator,在new的時候可以覆蓋預設的comparator定義自己的排序規則,不過還是只能根據key進行排序
private
static
void
sorttreemap()
);map.
put(
"a",
"2")
; map.
put(
"c",
"5")
; map.
put(
"d",
"6")
; map.
put(
"b",
"1")
; map.
foreach
((k,v)
->);
}
輸出結果
a:2b:
1c:5d:
6
hashmap本身是沒有順序的,不能直接對其進行排序
要排序,只能先轉成list,然後對list排序後,再轉成linkedhashmap
這樣做排序,完全由自己定義,既可以對key排序,也可以對value排序
private
static
void
sortmapvalue()
)); lstentry.
foreach
(o->);
//如果一定要返回乙個map,就new乙個linkedhashmap,將list中所有值依次put進去就可以
/*linkedhashmaplinkedhashmap=new linkedhashmap<>();
lstentry.foreach(o->);*/
}
輸出結果
b:1a:
2c:5d:
6
java如何對map進行排序詳解
一 簡單介紹map 在講解map排序之前,我們先來稍微了解下map。map是鍵值對的集合介面,它的實現類主要包括 hashmap,treemap,hashtable以及linkedhashmap等。其中這四者的區別如下 簡單介紹 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...