Map根據value值進行分組

2021-10-04 03:59:38 字數 660 閱讀 4787

今天碰到同事在群裡問怎麼把乙個map根據value進行分組,當時我的第一想法是將value和key互換,

多個value對應的不同key作為集合,**如下:12

mapsatamap=new hashmap<>();

final map> groupmap = new hashmap<>();

satamap.put("a",1);

satamap.put("b",3);

satamap.put("c",2);

satamap.put("d",4);

satamap.put("e",2);

satamap.put("f",4);

satamap.put("g",3);

satamap.put("h",2);

system.out.println(result);

satamap.foreach(new biconsumer() else

}});

結果很快被打臉了,同事找到乙個更好的方法

map>>result= satamap.entryset().stream().collect(collectors.groupingby(c -> c.getvalue()));

1將map轉換為乙個entry集合,然後再用集合分組的方式,就很簡單的實現這個功能了

根據value欄位對map進行排序

一般來說,我們通常都是通過map中的key欄位進行排序,步驟如下 treemapmap new treemap new comparator 直接新增比較器 public int compare string o1,string o2 但是卻沒有直接的方法能夠進行value排序 1.提取檢視 2.變...

Map集合排序 根據value對key進行排序

在流水的業務中,碼出最優雅的 描述 有若干個鍵值對格式的json字串,根據其中的value進排序,取出其中的排位靠前的一半以上的key值,json資料為 這是業務上的乙個需求,於是針對這個需求就有了對map的排序一系列探索 前言 對於json轉map本篇就不介紹,直接從對map的排序開始,其他型別可...

list中有map,根據map的value進行排序

list中有map,需要對map中的value進行從小到大排序,使用lambda表示式可以輕鬆實現。collections.sort list,map1,map2 system.out.println 排序後的list list map1和map2的value進行對比,如果key是string型別,...