首页 > 解决方案 > 如何在java 8中对出现的元素计数求和

问题描述

我想在 java 8 中找到出现元素总和,并使用下面的技术我得到所有元素总和,但我只想找到 itemType=EQUIPMENT 元素总和

有人能帮助我吗

double sum = itemList.stream().mapToDouble(a -> a.getQuantity())
                    .sum();

[
        {
            "itemType": "EQUIPMENT",
            "quantity": 6
        },
        {
            "itemType": "DTVN",
            "quantity": 2
        },
        {
            "itemType": "EQUIPMENT",
            "quantity": 1
        }
]

标签: javajava-8

解决方案


equals您可以使用或equalsIgnoreCase基于您想要的过滤特定的 itemType

double sum = itemList.stream()
                .filter(type->"EQUIPMENT".equals(type.getItemType()))
                .mapToDouble(a -> a.getQuantity())
                .sum();

推荐阅读