2个list流不同的字段合并相加

动态 未结 0 163
小小草
小小草 LV1 2023年9月23日 23:40 发表
假设我们有两个List集合,分别为numbers1和numbers2,它们包含多个对象,每个对象都有一个整数字段。我们想要使用Java 8的Stream API将这两个List进行合并相加操作,得到它们所有对象的整数字段的总和。 以下是使用Stream API进行两个List流合并相加的示例代码: ``` class Number { private int value; public Number(int value) { this.value = value; } public int getValue() { return value; } } List numbers1 = Arrays.asList(new Number(1), new Number(2), new Number(3)); List numbers2 = Arrays.asList(new Number(4), new Number(5), new Number(6)); int sum = Stream.concat(numbers1.stream(), numbers2.stream()) .mapToInt(Number::getValue) .sum(); System.out.println("Sum: " + sum); ``` 上述代码中,我们首先使用Stream.concat方法将两个List转换为一个Stream,然后使用mapToInt方法将每个对象转换为它的整数字段值,并返回一个IntStream。最后,我们使用IntStream的sum方法对所有整数进行累加操作。 执行上述代码后,将会输出结果"Sum: 21",表示两个List中所有对象的整数字段的总和为21。 需要注意的是,我们在mapToInt方法中使用了方法引用Number::getValue来获取每个对象的整数字段值。如果对象的字段不是整数类型,我们需要根据实际情况选择适当的方法来转换为整数类型。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复