Java的8流 - 在一个类从流求和多个值

约翰 :

我想这是从集流类中总结两个变量的总和。考虑下面的简单类。

class Widget {
    String colour;
    Double legs;
    Double arms;
    // ...
}

我想通过颜色和工作流小工具的集合,它们组合出(腿+武器)的总和发现四肢为每种颜色的总数。

我想要做简单的东西,这样的 -

widgets.stream().collect(groupingBy(Widget::getColour, summingDouble(legs + arms)));

但是,有没有收藏功能,这让我指定一个自定义值之和。

我的问题是:我是否需要写一个自定义的收藏家或有另一种简单的方法来实现我想要什么?

塞缪尔·菲利普:

你可以使用Collectors.summingDouble()

Map<String, Double> result = widgets.stream()
        .collect(Collectors.groupingBy(
                Widget::getColour,
                Collectors.summingDouble(w -> w.getArms() + w.getLegs())
        ));

你可以只使用功能w -> w.getArms() + w.getLegs()要求和的胳膊和腿。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章