Java 对List中的对象属性求和
时间: 2023-12-10 19:38:25 浏览: 83
假设有一个List\<Person>的对象列表,每个Person对象都有一个age属性,你可以使用Java 8的Stream API对age属性进行求和:
```java
List<Person> personList = new ArrayList<>();
// add some Person objects to the list
int sum = personList.stream()
.mapToInt(Person::getAge) // 将每个Person对象的age属性映射为一个int值
.sum(); // 对所有int值进行求和
System.out.println("Sum of ages: " + sum);
```
如果你没有使用Java 8,可以使用一个for循环来实现相同的功能:
```java
List<Person> personList = new ArrayList<>();
// add some Person objects to the list
int sum = 0;
for (Person person : personList) {
sum += person.getAge();
}
System.out.println("Sum of ages: " + sum);
```
相关问题
Java 对List中的对象属性BigDecimal求和
可以使用 Java 8 中的 Stream API 来对 List 中的 BigDecimal 属性求和。具体实现可以参考以下代码:
```java
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 创建一个包含 BigDecimal 属性的对象列表
List<MyObject> list = new ArrayList<>();
list.add(new MyObject(BigDecimal.valueOf(1.23)));
list.add(new MyObject(BigDecimal.valueOf(4.56)));
list.add(new MyObject(BigDecimal.valueOf(7.89)));
// 使用 Stream API 对 BigDecimal 属性求和
BigDecimal sum = list.stream()
.map(MyObject::getBigDecimal)
.reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("Sum: " + sum);
}
}
class MyObject {
private BigDecimal bigDecimal;
public MyObject(BigDecimal bigDecimal) {
this.bigDecimal = bigDecimal;
}
public BigDecimal getBigDecimal() {
return bigDecimal;
}
}
```
在上面的代码中,我们首先创建了一个包含 BigDecimal 属性的对象列表 `list`,然后使用 Stream API 的 `map` 方法将列表中的每个对象映射成其 BigDecimal 属性,最后使用 `reduce` 方法对这些 BigDecimal 属性进行求和。注意,在 `reduce` 方法中,我们使用了 `BigDecimal::add` 方法作为累加器函数,以确保精度不丢失。
list.stream对象属性求和
假设你有一个包含对象的列表,每个对象都有一个属性值,你想要通过 Java 8 中的 Stream API 求出这些属性值的总和,可以按照以下方式操作:
假设你有一个名为 `MyObj` 的类,其中包含一个名为 `value` 的属性,它代表对象的属性值。那么你可以这样写:
```
List<MyObj> myObjs = ... ; //初始化你的列表
int sum = myObjs.stream().mapToInt(MyObj::getValue).sum();
```
这里使用了 `mapToInt()` 方法将 `MyObj` 对象转换为其对应的 `value` 属性值,并将其求和。如果你的属性值不是整数类型,可以使用 `mapToDouble()` 或 `mapToLong()` 方法,具体取决于属性值的类型。
阅读全文