假设有一个Obj类
class Obj{ int field; }
并且您有一个Obj实例列表,即List<Obj> lst。
Obj
List<Obj> lst
现在,如何在Java8中使用过滤条件field从流中找到列表中的对象的int字段值的总和lst(例如,对于object o,条件为o.field > 10)?
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();