개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.13 00:01

CollectionFind::groupBy에 대한 질문

목록
  • UI컴포넌트장인 6시간 전 2025.08.13 00:01 새글
  • 2
    1
CollectionFind::groupBy를 사용하여 데이터를 그룹화할 때, 여러 필드를 사용하여 그룹화할 수 있는 방법은 무엇인가요?

예를 들어, 다음 데이터가 있다고 가정해 보겠습니다.

java

List users = Arrays.asList(

    new User("John", 25, "New York"),

    new User("Alice", 30, "Los Angeles"),

    new User("Bob", 25, "New York"),

    new User("Charlie", 30, "Los Angeles")

);



CollectionFind::groupBy를 사용하여 "age"와 "city" 필드를 사용하여 데이터를 그룹화할 수 있는 방법은 무엇인가요?

그룹화된 결과를 어떻게 출력할 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  6시간 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 43,712건 / 1 페이지

검색

게시물 검색