두지도의 값을 합산하고 구아바를 사용하여 합계 값으로지도를 반환하려면 어떻게해야합니까? 안전하게 가정 할 수 있습니다. 두 맵은 동일한 키 세트를 갖습니다.두지도의 값을 합산하고 구아바를 사용하여 값을 반환하는 방법
예를 들어:
Map<OccupancyType, BigDecimal> filteredPrice
[ 1 : 100 ]
[ 2 : 50 ]
[ 3 : 200 ]
다른지도
Map<OccupancyType, BigDecimal> pkgPrice
[ 1 : 10 ]
[ 2 : 20 ]
[ 3 : 30 ]
Map<OccupancyType, BigDecimal> sumPrice
[ 1 : 110 ]
[ 2 : 70 ]
[ 3 : 230 ]
가 나는이지도를 통해 반복하고 쉽게 값을 요약 할 수 있습니다 알고 짓게되는지도 만이 거기에 구아바 메서드 중 하나를 사용하여 이것을 수행하는 더 깨끗한 방법?
고마워요! 나는'직접 접근법 (direct approach) '을 앞두고 당신의 답을 답으로 표시하고 싶습니다. 그러나, 그렇게함으로써 나는 transformEntries (...)를 생각하고 사용하도록 누군가를 오도하고 싶지는 않습니다. 우리가 여기서 어떻게 할 수 있을지에 대한 아이디어가 있습니까? – brainydexter
또한, 이것을 자세히 설명 할 수 있습니까? 또한,이 구현은 복사 할 때까지 요청할 때마다 값을 다시 계산합니다. 참조 링크를 공유해 주시면 감사하겠습니다. – brainydexter
'sumPrice'를 위 메소드를 사용하여 계산 된 맵으로 설정하면'sumPrice.get (key) '를 두 번 이상 호출하면 매번 sum이 다시 계산됩니다. 'Maps.transformEntries'는 복사본이 아닌 _view_를 반환합니다. 즉, 반환 된 맵에 대한 쿼리가 백업 맵을 통해 읽고 다시 계산됩니다. –