假设有一个类 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 许可协议
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
3 回答1.9k 阅读
2 回答773 阅读✓ 已解决
1 回答3.7k 阅读
2 回答1.7k 阅读
你可以做
或(使用方法参考)