1
鑑於這種類用Java 8的風格,我想看看,如果我不需要調用兩次流API:如何使用Java 8 Stream API從Java POJO獲取多個屬性?
import java.util.*;
public class Foo {
public static void main(String... args) {
List<Person> persons = new ArrayList<>();
init(persons, Person::new, "John", "Doe");
persons.stream()
.map(Person::getFirstName)
.forEach(System.out::println);
persons.stream()
.map(Person::getLastName)
.forEach(System.out::println);
}
@FunctionalInterface
interface PersonFactory {
Person create(String firstName, String lastName);
}
private static void init(List<Person> persons, PersonFactory factory, String fn, String ln) {
persons.add(factory.create(fn, ln));
}
}
class Person {
private final String firstName;
private final String lastName;
public Person(String fName, String lName) {
this.firstName = fName;
this.lastName = lName;
}
public String getFirstName() {return this.firstName;}
public String getLastName() {return this.lastName;}
}
我想看看我是否能代替stream
的「人」 List
在一個走。
有什麼建議嗎?
我不明白您用案件。如果你需要遍歷列表中的所有元素,只需使用'List.forEach',你甚至不需要流。當您需要過濾列表中的某些元素或對列表中的元素應用某種轉換時(即將名稱以「A」開頭的每個人轉換爲「Frog」),然後將它們收集到單獨的列表中。 –