38
Tôi có số List<Person>
. Tôi cần có một số List
từ một tài sản của Person
.Làm cách nào để lấy Danh sách từ một số thuộc tính lớp với Java 8 Stream?
Ví dụ, tôi có một lớp 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"));
Tôi muốn để có được danh sách tên với Stream
API như thế này:
List<String> names = personList.stream().somecode().collect(Collectors.toList());
names.stream().forEach(System.out::println);
#David
#Joe
#Michel
#Barak
Mã này không làm việc:
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;
}
}
Cách tôi có thể nhận được số List
của một thuộc tính với số Stream
API không?
Cảm ơn. Làm thế nào tôi có thể hợp nhất nhiều danh sách các chuỗi mà tôi đã nhận với .map (Person :: getFriends); – NCNecros
@NCNecros Điều đó phụ thuộc vào đầu vào là gì. Tôi không hiểu những gì bạn đang cố gắng làm trong mã mà bạn đã thêm vào câu hỏi. – Eran
@Eran Nó có xử lý trường hợp khi danh sách trống không? – Joy