stream 流 根据某个字段求和
时间: 2023-07-08 09:42:56 浏览: 130
在Java 8中,可以使用Stream流进行操作,根据某个字段求和的实现方式如下:
假设我们有一个包含多个对象的List列表,每个对象都有一个字段age,我们需要根据age字段求和。
```java
List<Student> students = new ArrayList<>();
students.add(new Student("Tom", 18));
students.add(new Student("Jerry", 20));
students.add(new Student("Mike", 22));
int totalAge = students.stream().mapToInt(Student::getAge).sum();
System.out.println("Total age: " + totalAge);
```
上面的代码中,我们使用mapToInt方法将每个学生对象的age字段映射为一个IntStream流,然后使用sum方法将这个流中所有的元素求和,最终得到了所有学生的年龄总和。
其中,Student类的定义如下:
```java
class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
}
```
需要注意的是,如果age字段是一个包装类型(如Integer),则需要使用map方法将其映射为一个流,而不是mapToInt。