当前位置: 首页 > 知识库问答 >
问题:

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

邢嘉祯
2023-03-14

假设有一个类Obj

class Obj {
  int field;
}

...您有一个Obj实例列表,即list

现在,我如何在过滤条件下(例如,对于对象o,条件是o字段),通过流找到列表lst中对象的int字段field的值之和


共有3个答案

倪培
2023-03-14

您还可以使用适当的求和采集器(如采集器)#求和(ToIntFunction)

返回一个收集器,该收集器生成应用于输入元素的整数值函数的和。如果不存在任何元素,则结果为0。

举个例子

Stream<Obj> filtered = list.stream().filter(o -> o.field > 10);
int sum = filtered.collect(Collectors.summingInt(o -> o.field));
祁建明
2023-03-14

你可以试试

int sum = list.stream().filter(o->o.field>10).mapToInt(o->o.field).sum();

就像这里解释的

百里意智
2023-03-14

你可以做的

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();
 类似资料:
  • 问题内容: 假设有一个Obj类 并且您有一个实例列表,即。 现在,如何在Java8中使用过滤条件从流中找到列表中的对象的int字段值的总和(例如,对于object ,条件为)? 问题答案: 你可以做 或(使用方法参考)

  • 假设有一个类Obj 并且您有一个实例列表,即。 现在,我如何在Java8中用流找到来自列表中对象的int字段值的和(例如,对于对象,标准是)?

  • 假设有一个Obj类 你有一个实例列表,即

  • 问题内容: 说我有一个对象列表,其中包含两个字段和,均为String类型。 如果有可能,如何在不迭代列表的情况下获取所有值的列表? 问题答案: 对象是对内存地址的引用。然后,该对象的字段是指向其他内存地址的其他引用。因此,对象列表是引用列表。因此,列表不可能直接访问对象字段(由引用给出的引用)。最简洁的答案是不。 注意:无论如何,您都会找到可以实现所需功能的API,但该API仍在内部循环。

  • 在我的角度 this.device返回对象。每个对象都包含一个字段,并且在所有15个对象上都有不同的值。如果我可以访问underscore.js,我就会这样做,但是在这个项目中,我没有它。 什么是JS的方法来访问它而不需要执行for循环?

  • 我有一份包含订单项目列表的订单 如果在这个列表中我有以下项目 我想计算订单所有者名称相同的值之和。 e、 g.如果所有者名称为“John”,则返回417.00,如果名称为“Doe”,则返回19.00。 我怎么能通过小溪Java呢?非常感谢