list.stream对象属性求和
时间: 2023-09-23 18:02:25 浏览: 94
假设你有一个包含对象的列表,每个对象都有一个属性值,你想要通过 Java 8 中的 Stream API 求出这些属性值的总和,可以按照以下方式操作:
假设你有一个名为 `MyObj` 的类,其中包含一个名为 `value` 的属性,它代表对象的属性值。那么你可以这样写:
```
List<MyObj> myObjs = ... ; //初始化你的列表
int sum = myObjs.stream().mapToInt(MyObj::getValue).sum();
```
这里使用了 `mapToInt()` 方法将 `MyObj` 对象转换为其对应的 `value` 属性值,并将其求和。如果你的属性值不是整数类型,可以使用 `mapToDouble()` 或 `mapToLong()` 方法,具体取决于属性值的类型。
相关问题
list.stream对象属性求和BigDecimal
假设有一个对象列表 List<MyObject>,其中 MyObject 类有一个 BigDecimal 类型的属性 value,可以使用 Java 8 的 Stream API 来计算这些对象的 value 属性的和。
代码示例:
```
import java.math.BigDecimal;
import java.util.List;
public class MyObject {
private BigDecimal value;
public MyObject(BigDecimal value) {
this.value = value;
}
public BigDecimal getValue() {
return value;
}
}
public class Main {
public static void main(String[] args) {
List<MyObject> list = List.of(
new MyObject(BigDecimal.valueOf(10)),
new MyObject(BigDecimal.valueOf(20)),
new MyObject(BigDecimal.valueOf(30))
);
BigDecimal sum = list.stream()
.map(MyObject::getValue)
.reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("Sum of values: " + sum);
}
}
```
在上面的示例中,首先创建了一个包含三个 MyObject 对象的列表。然后使用 Stream API 中的 map 方法将 MyObject 对象转换为其 value 属性,最后使用 reduce 方法将所有值相加,得到了它们的总和。输出结果为:
```
Sum of values: 60
```
list.stream对象求和
可以使用Java 8中的Stream API来对List进行求和,示例代码如下:
```java
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int sum = list.stream().mapToInt(Integer::intValue).sum();
System.out.println("Sum of list elements is : " + sum);
```
首先,我们将List转换为一个Stream对象,然后使用mapToInt()方法将每个元素转换为int类型,最后使用sum()方法对所有元素进行求和。
阅读全文