ฉันมีList<Person>. ฉันต้องการได้รับListจากทรัพย์สินของPerson.
ตัวอย่างเช่นฉันมีPersonชั้นเรียน:
class Person
{
    private String name;
    private String birthDate;
    public String getName() {
        return name;
    }
    public String getBirthDate() {
        return birthDate; 
    }
    Person(String name) {
        this.name = name;
    }
}
List<Person> personList = new ArrayList<>();
personList.add(new Person("David"));
personList.add(new Person("Joe"));
personList.add(new Person("Michel"));
personList.add(new Person("Barak"));ฉันต้องการรับรายชื่อด้วยStreamAPI ดังนี้:
List<String> names = personList.stream().somecode().collect(Collectors.toList());
names.stream().forEach(System.out::println);
#David
#Joe
#Michel
#Barakรหัสนี้ใช้ไม่ได้:
public class Main 
{
    public static void main(String[] args) 
    {
        List<Person> personList = new ArrayList<>();
        Person person = new Person("Иван");
        person.getFriends().addAll(Arrays.asList("Друг 1", "Друг 2", "Друг 3"));
        personList.add(person);
        person = new Person("Федор");
        person.getFriends().addAll(Arrays.asList("Друг 4", "Друг 5", "Друг 6"));
        personList.add(person);
        person = new Person("Алексей");
        person.getFriends().addAll(Arrays.asList("Друг 7", "Друг 8", "Друг 9"));
        personList.add(person);
        person = new Person("Константин");
        person.getFriends().addAll(Arrays.asList("Друг 10", "Друг 11", "Друг 12"));
        List<String> friens = personList.stream().map(e->e.getFriends()).collect(Collectors.toList());
        friends.stream().forEach(System.out::println);
        //Друг 1
        //Друг 2
        //Друг 3
        //Друг 4
        //...
    }
}
class Person
{
    String name;
    List<String> friends;
    Person(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public List<String> getFriends() {
        return friends;
    }
}
ฉันจะรับListคุณสมบัติที่มีStreamAPI ได้อย่างไร