Java Collectors groupingBy

starlikedh
|2021. 11. 13. 15:54

Collectors groupingby

SQL GROUP BY하듯이 Java에서도 그룹핑을 할 수 있다고 한다.
쿼리에서 넘어온 데이터를 그룹핑해서 Map 형태로 return 해 주는 과정인데 자세한 건 예제를 보는 게 빠른 법.
아 그리고 return 시 Map의 key 값은 절대절대 null이어서는 안된다!

Test를 위해 간단히 인터넷 다른 예제들 참고해서 Employee 클래스 하나 만들어주고,
아이다랑 부서랑 이름만 변수로 해서 지정해주고 get으로 각각 함수 만들어서 받아주는것도 만들어주기.

제일 먼저 util 라이브러리들 import해주기.
그다음은 list 하나 만들어서 거기에다가 데이터들을 넣어주는데 new 연산자로 객체 생성해서 넣어주기.

이제 중요한 부분!!!
앞서 말한 것과 같이 Map 형태로 리턴해주기 때문에,
Map을 하나 만들어주는데 나는 부서를 key로 설정할거라 Map< String ~~~> 이런식으로 해서 만들어 주었다.
그 다음 Collector의 groupingBy 함수로 그룹핑을 해 주는데 함수 뒤 ()안에다가 그룹핑할 기준(매개변수) 지정해주기.
그럼 이제 부서가 key가 될 것이고 나머지 이름이 value가 된다고 예측할 수 있을 것이다 아마도..

다음으로는 그룹핑한것을 결과로 뿌려주기 위해서 forEach로 반복시켜서,
System.out.println( )해서 이쁘게 결과가 나오는지 확인하면 끝.

마지막으로 공식 문서 링크도 같이 첨부.

https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html

 

Collectors (Java Platform SE 8 )

Returns a Collector implementing a "group by" operation on input elements of type T, grouping elements according to a classification function, and returning the results in a Map. The classification function maps elements to some key type K. The collector p

docs.oracle.com

 

'Backend' 카테고리의 다른 글

전자정부표준프레임워크_02  (0) 2022.03.07
전자정부표준프레임워크_01  (0) 2022.02.26
JSTL & EL  (0) 2021.09.12
Spring Annotation  (0) 2021.09.11
자바 개념 정리_05  (0) 2021.09.05