본문 바로가기
Web Programing!/JAVA / JSP

[JAVA] List의 특정 ID별 Sum값 구하기

by 어설픈봉봉이 2021. 11. 18.
반응형
SMALL

List에 있는 Item들을 대상으로 고유한 ID별로 합계 구하기

class SumClass { 
    public String id; 
    public Float value; 
}

 

 

문제풀이

Collector.toMap(a1, a2, a3) 메서드

첫번째 인자에 의해서 Key (SumClass에서 id)

두번째 인자는 맵의 Value (SumClass에서 value)

세번째 인자는 Key에 충돌이 있는 경우 Value를 merge하는 연산자

세번째 인자에 Float::sum 연산자를 넘겨줌으로써 id가 동일한 경우 value를 합산하도록 Map을 작성한 것이다.

 

private Map<String, Float> sum(List<SumClass> list) { 
    return list.stream().collect(Collectors.toMap(e -> e.id, e -> e.value, Float::sum)); 
}

#java #LIST합구하기 #Collector.toMap #lamda #java람다식 #toMap()

반응형