[java] 람다 표현식을 사용하여 스트림을 어떻게 그룹화할 수 있나요?
자바 8부터 추가된 람다 표현식과 스트림 API를 사용하면 데이터를 간편하게 그룹화할 수 있습니다. 이를 위해 Collectors.groupingBy()
메서드를 활용할 수 있습니다.
그룹화 기준 정의하기
먼저, 그룹화할 기준을 정의해야 합니다. 예를 들어, 객체를 그룹화할 때 해당 객체의 속성 값을 기준으로 그룹화할 수 있습니다.
Map<String, List<Person>> personByCity =
people.stream()
.collect(Collectors.groupingBy(Person::getCity));
위 예제에서는 Person
객체를 ‘city’ 속성을 기준으로 그룹화하고 있습니다.
복수의 조건을 이용한 그룹화
복수의 조건으로 그룹화하려면 Collectors.groupingBy()
메서드에 조합된 람다 표현식을 전달하면 됩니다.
Map<String, Map<Integer, List<Person>>> personByCityAndAge =
people.stream()
.collect(Collectors.groupingBy(Person::getCity, Collectors.groupingBy(Person::getAge)));
위 예제에서는 ‘city’와 ‘age’ 속성을 기준으로 그룹화하고 있습니다.
결과 확인
그룹화한 결과는 Map
을 통해 얻을 수 있습니다. 이후에는 이를 원하는 형태로 가공하거나 활용하면 됩니다.
결론
람다 표현식과 스트림 API를 이용하여 데이터를 그룹화하는 것은 매우 간편하며, 다양한 기준으로 그룹화할 수 있습니다. 람다 표현식을 이용한 스트림 그룹화를 활용하여 데이터 처리를 효율적으로 수행할 수 있습니다.
이상으로 람다 표현식을 사용하여 스트림을 그룹화하는 방법에 대해 알아보았습니다.
자세한 내용은 아래 자료를 참고하세요.