stream 分類變成多層map

2021-10-09 21:48:11 字數 1343 閱讀 6817

按照組合鍵分類

1,list分類 用stream分類,自動變成map,可以組合屬性分類 直接用groupb有,連用幾個分幾層,也可逐級分類,用一級分類一級,不必一步到位

//    private static string fetchgroupkeydaypart(string channelcode, string datetypecode, templatedimension templatedimension)

listmapdatetypevalue = datetype.getvalue();

map> groupbydaypart = mapdatetypevalue.stream().filter(e -> daytype.equals(e.getdatetypecode())).collect(collectors.groupingby(e -> fetchgroupkeydaypart(mapkey, daytype, e)));

兩層map轉化

2,多層分類,map套map //按照模板分類所有維度--list中的元素是map---即可對map分類---list分類自動變成map----多個map間按照key合併

flatmap對集合進行抽出部分的裁剪,當每次抽出的是list用flagmap,否則用map

mapm1 = new hashmap<>();

m1.put("a", 1l);

m1.put("b", 100l);

mapm2 = new hashmap<>();

m2.put("a", 10l);

m2.put("b", 20l);

m2.put("c", 100l);

list> beforeformatting = new arraylist<>();

beforeformatting.add(m1);

beforeformatting.add(m2);

3,map轉list

hashmapmap = new hashmap<>();

map.put("mayun",2000);

map.put("mahuateng",1200);

map.put("liuqiangdong",700);

listcollect = map.entryset().stream().map(en -> new account(en.getkey(), en.getvalue())).collect(collectors.tolist());

collect.stream().foreach(n-> system.out.println(n));

//用這中去重方法空key會報錯空指標變成""用的時候在去掉""即可

map中巢狀多層map的方法

這是乙個map中巢狀多層map的方法,tmcisdataitemdef是乙個物件,tmcisdataitemdefdao.queryforlist 方法從資料庫中取出所有tmcisdataitemdef表中的資料放大list中,再變數list,根據物件的字段分級放到map中。public map g...

java多層map巢狀案例

這是做專案事service層的乙個方法,tmcisdataitemdef是乙個物件,tmcisdataitemdefdao.queryforlist 方法從資料庫中取出所有tmcisdataitemdef表中的資料放大list中,再變數list,根據物件的字段分級放到map中。public map ...

Stream的flatmap與map異同的理解

他們的相同點是接收的入參都是乙個function。不同點這個入參function的返回不同。map返回乙個物件,flatmap返回乙個stream。這就使得map是一對一的處理,得到的stream中元素的數量和原始數量一致,而flatmap返回stream這就使得flatmap可以具備一對多的處理能...