java - 列表中对象的特定字段的总和值

标签 java filter java-8 java-stream

假设有一个类Obj :

class Obj {
  int field;
}

...并且您有一个列表 Obj实例,即 List<Obj> lst .

现在,我怎样才能用流找到 int 字段的值的总和 field来自列表 lst 中的对象在过滤标准下(例如,对于对象 o ,标准是 o.field > 10 )?

最佳答案

你可以做到

int sum = lst.stream().filter(o -> o.getField() > 10).mapToInt(o -> o.getField()).sum();

或(使用方法引用)

int sum = lst.stream().filter(o -> o.getField() > 10).mapToInt(Obj::getField).sum();

关于java - 列表中对象的特定字段的总和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41447759/

相关文章:

java - 在哪里放置gui项目代码

list - 在 Scala 中,基于与另一个元素的相似性来删除列表中元素的最有效方法是什么?

javascript - EaseJS 将颜色滤镜应用于位图

lambda - 如何从字节数组制作 IntStream?

java - 我应该将 java Stream.map 函数与 switch 语句一起使用吗?

java - 如果变量很多,如何将变量添加到列表中?

java - 一个重定向/中间页面可用于多个链接和目的地

java - Tomcat 7 javax.el.E​​LException 异常

javascript - 根据所选类别进行过滤 react

java - 在java中按多个字段过滤的最佳方法是什么