2015-01-21 2 views
10

Dog 클래스가 있다고 가정 해 보겠습니다. 안에지도가 있고 값 중 하나가 품종입니다.Java 스트림 - 목록의 해시 맵에 목록 정렬

public class Dog{ 
    String id; 
    ... 
    public map<String,String> 
} 

나는 그것을 반복하기보다는 스트림을 사용하여 목록

HashMap<String, List<Dog>> // breed to a list<Dog> 

의지도를 얻을 싶어요.
어떻게해야합니까?

답변

25

그룹화와 함께 할 수 있습니다. 귀하의 의견을 가정

List<Dog>이며, Dog 클래스 내부의 Map 회원은 map라고되어 있고 품종은 키 "번식"에 대한 저장됩니다

List<Dog> dogd = ... 
HashMap<String, List<Dog>> map = dogs.stream() 
            .collect (Collectors.groupingBy(d -> d.map.get("Breed"))); 
10

큰 대답은 위에서 더욱 향상시킬 수 함수 프로그래밍 표기법을 사용하여 :

List<Dog> dogs = ... 
HashMap<String, List<Dog>> map = dogs.stream().collect(Collectors.groupingBy(Dog::getBreed));