按照组合键分类
1,list分类 用stream分类,自动变成map,可以组合属性分类 直接用groupb有,连用几个分几层,也可逐级分类,用一级分类一级,不必一步到位
// private static String fetchGroupKeyDaypart(String channelCode, String dateTypeCode, TemplateDimension templateDimension) {
// return channelCode + "#" + dateTypeCode + "#" + templateDimension.getDaypartCode();
// }
List
Map
两层map转化
Map
List
if (null != productStrikeoutPrices && productStrikeoutPrices.size() > 0) {
productStrikeoutPriceTierMap = productStrikeoutPrices.stream().collect(Collectors.groupingBy(ProductStrikeoutPrice::getProductCode, Collectors.groupingBy(ProductStrikeoutPrice::getPriceTierCode)));
}
2,多层分类,map套map //按照模板分类所有维度--list中的元素是map---即可对map分类---list分类自动变成map----多个map间按照key合并
flatMap对集合进行抽出部分的裁剪,当每次抽出的是list用flagMap,否则用map
Map m1 = new HashMap<>();
m1.put("A", 1l);
m1.put("B", 100l);
Map m2 = new HashMap<>();
m2.put("A", 10l);
m2.put("B", 20l);
m2.put("C", 100l);
List
Map
.flatMap(x -> x.entrySet().stream()) //---这里转化成map的遍历
.collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.mapping(Map.Entry::getValue, Collectors.toList())));//用map的操作方法
list分类自动变为map
3,map转list
HashMap
map.put("mayun",2000);
map.put("mahuateng",1200);
map.put("liuqiangdong",700);
List
collect.stream().forEach(n-> System.out.println(n));
//用这中去重方法空key会报错空指针变成""用的时候在去掉""即可
List
.collect(Collectors.toList());
public static
Map