collect() 메서드(3) - groupingBy()

2022. 4. 20. 14:47·자바/스트림

1. groupingBy()에 의한 분류

- 아래의 코드처럼 그룹화를 하면 기본적으로 List<T>에 담으며, toList()를 생략한다.

 

Map<Integer, List<Stu3>> stuByBan = Stream.of(stuArr)

                                          .collect(groupingBy(Stu3::getBan, toList()));

// toList()가 생략 가능 !!

 

Map<Integer, HashSet<Stu3>> stuByHak = Stream.of(stuArr)

                                          .collect(groupingBy(Stu3::getHak, toCollection(HashSet::new));

 

( 또한 toSet()을 사용할 수도 있다. )

 

 

( 아래의 Student의 정보가 있는 stu3클래스가 정의되어 있다고 가정하고 아래의 예제를 수행할 것이다. )

 

 

 

(1) 반별 기준으로 그룹화하기.

 

 

 

(2) 성적별로 그룹화하기.

 

 

 

(3) 성적별로 그룹화한 것을 counting() 통계하기.

 

 

 

(4) 학년과 반을 기준으로 다중 그룹화하기.

( 출력문이 길어 생략하였음. )

 

 

 

(5) 학년과 반별로 기준을 나눈 뒤, 각 반의 1등을 뽑아보기.

( collectingAndThen은 collect() 뒤에 한번 더 쓸 경우 사용된다, )

 

 

 

(6) 학년과 반별을 기준으로 나열하고 성적을 가지고 HIGH, MID, LOW 지정하기. 

( 단, 성적의 등급 HIGH, MID, LOW는 중복되지 않는다. )

( 이해를 돕기 위해 1-3에 일부러 50, 150, 200으로 세팅했다. )

'자바 > 스트림' 카테고리의 다른 글

Collector  (0) 2022.04.21
collect() 메서드(2) - partitioningBy()  (0) 2022.04.20
collect() 메서드(1)  (0) 2022.04.19
스트림의 최종 연산(조건 검사, 통계, 리듀싱)  (0) 2022.04.15
Optional<T>와 OptionalInt  (0) 2022.04.15
'자바/스트림' 카테고리의 다른 글
  • Collector
  • collect() 메서드(2) - partitioningBy()
  • collect() 메서드(1)
  • 스트림의 최종 연산(조건 검사, 통계, 리듀싱)
백_곰
백_곰
  • 백_곰
    친절한 코딩
    백_곰
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘 (with JAVA)
        • 기본 알고리즘
        • 완전 탐색
        • 분할 정복 알고리즘
        • 동적 계획법
        • 탐욕법
        • 코딩 테스트 기출 문제
        • 코드트리 조별과제
      • 백준 (with JAVA)
        • 완전 탐색
        • 분할 정복
        • 그 외
      • 자바
        • 개발 환경 구축하기
        • 팁
        • 기본적인 개념
        • 컬렉션 프레임워크
        • 프로세스와 쓰레드
        • 지네릭스
        • 람다식
        • 스트림
        • 입출력 IO
        • 네트워킹
        • 열거형(enums)
        • java.lang 패키지
        • java.time 패키지
        • 유용한 클래스들
        • 형식화 클래스들
      • 안드로이드 with 자바
        • 응용 문제들
        • 자잘한 문제들
        • 오류 보고서
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      outputstream
      안드로이드 스튜디오
      역직렬화
      file
      Arrays
      안정 정렬
      다형성
      java.lang패키지
      선택 정렬
      람다식
      문자 기반 스트림
      중간연산
      TCP 소켓 프로그래밍
      자바 개념
      map()
      ServerSocket
      코딩테스트
      소켓 프로그래밍
      알고스팟
      제자리 정렬
      Collections Framework
      유용한 클래스
      InputStream
      코드트리
      코딩트리조별과제
      스트림
      불안정 정렬
      serializable
      java.time 패키지
      snail
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    백_곰
    collect() 메서드(3) - groupingBy()
    상단으로

    티스토리툴바