目录

java-list-通过stream求和

目录

java list 通过stream求和

java list 通过stream求和

    public static void main(String[] args) {
        List<Double> doubles = new ArrayList<>();
        doubles.add(1.0);
        doubles.add(2.2);
        doubles.add(3.0);
        doubles.add(4.1);
        double sum = doubles.stream().mapToDouble(Double::doubleValue).sum();
        System.out.println(sum);
    }

对象的某个属性求和

        List<InventoryBlow> inventoryBlows = new ArrayList<>();
        InventoryBlow inventoryBlow = new InventoryBlow();
        inventoryBlow.setNum(3.3);
        InventoryBlow inventoryBlow2 = new InventoryBlow();
        inventoryBlow2.setNum(4.5);
        inventoryBlows.add(inventoryBlow);
        inventoryBlows.add(inventoryBlow2);

        // 写法一
        Double collect = inventoryBlows.stream()
                .collect(Collectors.summingDouble(InventoryBlow::getNum));
        System.out.println(collect);

        // 写法二 (推荐)
        double sum1 = inventoryBlows.stream().mapToDouble(InventoryBlow::getNum).sum();
        System.out.println(sum1);

ps:此处以一个double类型的属性举例