首页javastream_reduceJava Stream - 如何减少累积人员列表的年龄和名称

Java Stream - 如何减少累积人员列表的年龄和名称

我们想知道如何减少累积人员列表的年龄和名称。
import java.util.Arrays;
import java.util.List;

public class Main {

  public static void main(String[] args) throws Exception {
    List<Person> persons =
        Arrays.asList(
            new Person("Max", 18),
            new Person("Peter", 23),
            new Person("Pamela", 23),
            new Person("David", 12));   


    Person result =
        persons
            .stream()
            .reduce(new Person("", 0), (p1, p2) -> {
                p1.age += p2.age;
                p1.name += p2.name;
                return p1;
            });

    System.out.format("name=%s; age=%s", result.name, result.age);
  }

}
class Person {
  String name;
  int age;

  Person(String name, int age) {
      this.name = name;
      this.age = age;
  }

  @Override
  public String toString() {
      return name;
  }
}