根據key進行排序
map 的根據 key 排序需要用到 treemap 物件,因為它是預設按照公升序進行輸出的,可以使用比較器 compareto 對它進行降序排序,comparator 可以對集合物件或者陣列進行排序的比較器介面,實現該介面的 public compare(t o1,to2) 方法即可實現排序,該方法主要是根據第乙個引數o1,小於、等於或者大於o2分別返回負整數、0或者正整數,若是按照公升序可以直接省略比較器** maptreemap = new treemap();
//預設公升序排列
maptreemap = new treemap<>();
treemap.put("c", "ccccc");
treemap.put("a", "aaaaa");
treemap.put("b", "bbbbb");
treemap.put("d", "ddddd");
system.out.println(treemap);
//重寫比較器之後實現降序排列
maptreemap1 = new treemap(new comparator()
});treemap1.put("c", "ccccc");
treemap1.put("a", "aaaaa");
treemap1.put("b", "bbbbb");
treemap1.put("d", "ddddd");
system.out.println(treemap1);
根據value排序
對 value 排序我們就需要借助於 collections的sort(listlist, comparator<? super t> c) 方法,該方法根據指定比較器產生的順序對指定列表進行排序。但是有乙個前提條件,那就是所有的元素都必須能夠根據所提供的比較器來進行比較。
這種方法通用於 key 和 value 排序,只需將比較器中 o1.getvalue().compareto(o2.getvalue())的getvalue() 改為 getkey() 即可。
maptreemap3 = new treemap<>();
treemap3.put("c", "11111");
treemap3.put("a", "22222");
treemap3.put("b", "33333");
treemap3.put("d", "44444");
//重寫比較器之後實現根據map的value值進行排序
list> list = new arraylist<>(treemap3.entryset());
collections.sort(list, new comparator>()
});system.out.println(list);
for(map.entrymap : list)
list中有map,根據map的value進行排序
list中有map,需要對map中的value進行從小到大排序,使用lambda表示式可以輕鬆實現。collections.sort list,map1,map2 system.out.println 排序後的list list map1和map2的value進行對比,如果key是string型別,...
Map根據value值進行分組
今天碰到同事在群裡問怎麼把乙個map根據value進行分組,當時我的第一想法是將value和key互換,多個value對應的不同key作為集合,如下 12 mapsatamap new hashmap final map groupmap new hashmap satamap.put a 1 sa...
根據value欄位對map進行排序
一般來說,我們通常都是通過map中的key欄位進行排序,步驟如下 treemapmap new treemap new comparator 直接新增比較器 public int compare string o1,string o2 但是卻沒有直接的方法能夠進行value排序 1.提取檢視 2.變...