Collectors.collectingAndThen()
注:第一个参数为要处理的数据,第二个参数为第一个参数的结果接着处理
List<YyjzyBO> yyjzyBOList = new ArrayList<>();
YyjzyBO yyjzyBO1 = new YyjzyBO();
yyjzyBO1.setProductId("123");
yyjzyBO1.setTradeuse("111");
YyjzyBO yyjzyBO2 = new YyjzyBO();
yyjzyBO2.setProductId("123");
yyjzyBO2.setTradeuse("333");
YyjzyBO yyjzyBO3 = new YyjzyBO();
yyjzyBO3.setProductId("1234");
yyjzyBO3.setTradeuse("222");
yyjzyBOList.add(yyjzyBO1);
yyjzyBOList.add(yyjzyBO2);
yyjzyBOList.add(yyjzyBO3);
yyjzyBOList.stream().
collect(Collectors.collectingAndThen(Collectors.groupingBy(YyjzyBO::getProductId),
ss->ss.size()));
Collectors.groupingBy()
注:第一个参数为分组的条件,返回一个map<String,List>.第二个参数为处理第一个参数分组后每一个map元素的value
List<YyjzyBO> yyjzyBOList = new ArrayList<>();
YyjzyBO yyjzyBO1 = new YyjzyBO();
yyjzyBO1.setProductId("123");
yyjzyBO1.setTradeuse("111");
YyjzyBO yyjzyBO2 = new YyjzyBO();
yyjzyBO2.setProductId("123");
yyjzyBO2.setTradeuse("333");
YyjzyBO yyjzyBO3 = new YyjzyBO();
yyjzyBO3.setProductId("1234");
yyjzyBO3.setTradeuse("222");
yyjzyBOList.add(yyjzyBO1);
yyjzyBOList.add(yyjzyBO2);
yyjzyBOList.add(yyjzyBO3);
yyjzyBOList.stream().
Map<String, String> collect = yyjzyBOList.stream().collect(Collectors.groupingBy(YyjzyBO::getProductId,
Collectors.mapping(s -> s.getTradeuse(), Collectors.joining())));
for (Map.Entry<String, String> stringStringEntry : collect.entrySet()) {
System.out.println(stringStringEntry.getKey()+":"+stringStringEntry.getValue());
}