반응형
Java 8 Stream을 사용하여 일부 클래스 속성에서 목록을 가져오려면 어떻게 해야 합니까?
나는 가지고 있다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"));
그 사람이랑 같이 있는 사람 명단을 받고 싶어요Stream
API는 다음과 같습니다.
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
의 소유물의Stream
API?
사용할 수 있습니다.map
:
List<String> names =
personList.stream()
.map(Person::getName)
.collect(Collectors.toList());
편집:
친구 이름 목록을 결합하려면flatMap
:
List<String> friendNames =
personList.stream()
.flatMap(e->e.getFriends().stream())
.collect(Collectors.toList());
언급URL : https://stackoverflow.com/questions/30611870/how-can-i-get-a-list-from-some-class-properties-with-java-8-stream
반응형
'source' 카테고리의 다른 글
Vuex 상태 업데이트 방법(MEVN 스택) (0) | 2022.08.17 |
---|---|
Java에서 옵션 파라미터를 사용하려면 어떻게 해야 합니까? (0) | 2022.08.17 |
세트에서 요소 가져오기 (0) | 2022.08.16 |
왜 Double일까요?음수가 아닌 MIN_VALUE (0) | 2022.08.16 |
Vue js 2를 사용하여 구성 요소 하위 구성 요소 체인에서 이벤트를 버블링하려면 어떻게 해야 합니까? (0) | 2022.08.16 |