假设有一个类 Obj
:
class Obj {
int field;
}
…并且您有一个 Obj
实例列表,即 List<Obj> lst
。
现在,我如何使用流找到 int 字段值的总和 field
从列表中的对象 lst
在过滤条件下(例如对于对象 o
,标准是 o.field > 10
)?
原文由 mat_boy 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设有一个类 Obj
:
class Obj {
int field;
}
…并且您有一个 Obj
实例列表,即 List<Obj> lst
。
现在,我如何使用流找到 int 字段值的总和 field
从列表中的对象 lst
在过滤条件下(例如对于对象 o
,标准是 o.field > 10
)?
原文由 mat_boy 发布,翻译遵循 CC BY-SA 4.0 许可协议
您还可以 collect
使用合适的求和收集器,例如 Collectors#summingInt(ToIntFunction)
返回一个
Collector
产生应用于输入元素的整数值函数的总和。如果不存在任何元素,则结果为 0。
例如
Stream<Obj> filtered = list.stream().filter(o -> o.field > 10);
int sum = filtered.collect(Collectors.summingInt(o -> o.field));
原文由 Sotirios Delimanolis 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
你可以做
或(使用方法参考)