Java 8如何操作一个列表中的对象并将其收集到另一个列表中? [重复]

问题描述 投票:2回答:1

这个问题在这里已有答案:

我是Java8的新手。我需要按照特定条件将POJO列表转换为组,并在UI上显示。

  • 将属于Children类别的对象列表转换为Person类别。
  • 返回列表。 Children.java private String firstName; private String lastName; private String school; private String personId; // Setters and getters. Person.java private String fullName; private String address; // Setters and Getters. private Person convertChildToPerson(Children child) { Person person = new Person(); person.setFullName(child.getLastName() + ", " + child.getFirstName()); .. return person; } ..主要代码.. .. List<Person> personList; // Is populated by other functions. // Connect to DB and gets the output List<Children> childrenList = (Children) criteria.list(); for(Children children: childrenList) { personList.add(convertChildToPerson(children)); } return personList; 上面的FOR-LOOP不能被Java 8 Streams取代吗?
java lambda foreach java-8 java-stream
1个回答
4
投票
 List<Person> newList = childrenList.stream()
             .map(this::convertChildToPerson)
             .collect(Collectors.toList());

 personList.addAll(newList);

如Holger所建议的那样更短(更好):

childrenList.stream()
            .map(this::convertChildToPerson)
            .forEachOrdered(personList::add);
© www.soinside.com 2019 - 2024. All rights reserved.