0
点赞
收藏
分享

微信扫一扫

jdk8的stream流使用

今天你读书了吗 2022-03-19 阅读 66
java

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());
        }
举报

相关推荐

0 条评论