Поток Java Stream, группировка и суммирование объектов

将一个对象,按对象中的某个值进行分组,然后将分组后的值进行求和。
        //以时间为k,分组
        Map<String, List<ComplexTimeResp>> collect = complexTimeResps.stream()
                .collect(Collectors.groupingBy(ComplexTimeResp::getValue));
        ArrayList<ComplexTimeResp> arrayList = new ArrayList<>();
        //求和
        collect.forEach((k, v) ->{
    
    
            ComplexTimeResp complexTimeResp = new ComplexTimeResp();
            complexTimeResp.setValue(k);
            complexTimeResp.setQuantity(v.stream().mapToDouble(ComplexTimeResp::getQuantity).sum());
            complexTimeResp.setConsume(v.stream().mapToDouble(ComplexTimeResp::getConsume).sum());
            arrayList.add(complexTimeResp);
        });

Guess you like

Origin blog.csdn.net/m0_63364103/article/details/130683070