티스토리 뷰
728x90
반응형
stream 의 collect 의 groupby를 이용하여 특정 값에 대한 그룹을 지어주자
ex) a = [{}] .b = [{}] , c=[{}]
Stream 그룹 처리
Collectors.groupingBy() 사용
List<Map<String,String>> trendList = testService.selectTestList():
Map<String,List<Map<String,String>>> trendMap = trendList.stream().collect(Collectors.groupingBy(p->p.get("date")));
결과 예시 ) 2022-12=[{date=2022-12,cnt=3,gubun=A},{date=2022-12,cnt=1,gubun=B},{date=2022-12,cnt=4,gubun=C}]
Map 의 키값 기준으로 내림차순 정렬
Map<String,List<Map<String,String>>> trendMapSort =
trendMap.entrySet().stream().sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())).
collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1,e2) -> e1, LinkedHashMap::new));
stream 의 toMap 와 sum 을 이용한 list 특정 프로퍼티 기준 값 더하기
Map<String,Integer> map = (Map<String, Integer>) resultlist.stream().collect(Collectors.toMap(
o1 -> ((TestVO) o1).getTestGubunVO().getTitle(), //key 값 선언
o2 -> ((TestVO) o2).getComPerson() // value 값
, Integer :: sum // o1 key 와 값들을 더한다
));
ex) list = [{title : 'a', value ='1'} , {title : 'a' , value = 2}, { title : 'b' , value = 3}]
-> {title : 'a' , value = 3}, {title : 'b' , value = 3}
List<Map<String,String>> totalSumList = new ArrayList<Map<String,String>>();
//map 개수 만큼 반복문 동작
for(String key : map.keySet()) {
Map<String,String> temp = new LinkedHashMap<String, String>();
temp.put("title", key);
temp.put("total",String.valueOf(map.get(key)));
totalSumList.add(temp);
}
728x90
반응형
'프로그램 언어 > JAVA' 카테고리의 다른 글
자바(java)에서 제공하는 lock 기능 (0) | 2023.05.03 |
---|---|
자바(자바) stream 특정 key 값 중복 제거 처리 방 (0) | 2023.05.02 |
자바(java) 얕은 복사와 깊은 복사의 차이(경험담..) (0) | 2023.05.02 |
java xml 정보 Sax 방식을 이용한 파싱 방법 (0) | 2023.05.02 |
클라이언트 실제 접속 IP 가져오는 방법 (0) | 2023.05.02 |
250x250
반응형
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- dfs
- 개념 이해하기
- Cache
- Java
- Lock
- 권한
- dockerfile
- Linux
- docker
- MySQL
- Quartz
- hazelcast
- 정의
- ncp
- leatcode
- 이미지
- 알고리즘
- 리눅스
- 캐시
- 캘린더
- LocalDate
- 도커
- insert
- 격리수준
- 네이버 클라우드
- 컨테이너
- centos7
- 스케줄러
- mybatis
- spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함