
CollectionFind::groupBy를 사용하여 데이터를 그룹화할 때, 여러 필드를 사용하여 그룹화할 수 있습니다.
그룹화할 필드는 다음과 같이 지정할 수 있습니다.
#hostingforum.kr
java
Map> groupedUsers = users.stream()
.collect(Collectors.groupingBy(
user -> user.getAge() + "," + user.getCity()
));
위 코드에서 `user -> user.getAge() + "," + user.getCity()`는 그룹화할 필드를 지정합니다. `getAge()`와 `getCity()`는 `User` 클래스의 메소드입니다.
그룹화된 결과를 출력할 수 있습니다.
#hostingforum.kr
java
groupedUsers.forEach((key, value) -> {
System.out.println("Age: " + key.split(",")[0] + ", City: " + key.split(",")[1]);
value.forEach(user -> System.out.println("Name: " + user.getName()));
});
위 코드에서 `forEach` 메소드는 각 그룹의 키와 값에 대해 실행됩니다. 키는 `age`와 `city`를 포함하는 문자열입니다. `split` 메소드는 `,`를 기준으로 문자열을 분리합니다.
출력 결과는 다음과 같습니다.
#hostingforum.kr
Age: 25, City: New York
Name: John
Name: Bob
Age: 30, City: Los Angeles
Name: Alice
Name: Charlie
2025-08-13 00:02