2014-02-09 3 views
14

몇 가지 도움이 필요합니다. Java ando에서지도를 처리하는 방법을 스스로 배우고 있습니다. 해시 맵에서 값의 합계를 얻으려고했지만 지금은 붙어 있습니다.Java 해시 맵에서 값을 합하는 방법

이것은 합계하려는지도 값입니다.

HashMap<String, Float> map = new HashMap<String, Float>(); 

map.put("First Val", (float) 33.0); 
map.put("Second Val", (float) 24.0); 

엉덩이 내가지도에 10 또는 20의 값이있는 경우, 어떻게 그들 모두를 요약 할 수있는 추가 질문에, 나는 "를"해야합니까?

감사합니다. 도움에 감사드립니다. 당신이 Map모든 값을 추가해야하는 경우

+3

Insteaf 33.0' 당신은'33f' 또는'33.0f' – Christian

+0

어떤 단계를 사용할 수 있습니다

for (Entry<String, Float> entry : map.entrySet()) { sum += entry.getValue(); } 

하거나이 경우

: 당신은 엔트리 세트를 사용할 수 있습니다 * 알 수없는 크기의 콜렉션에서 많은 수의 값을 합산하려면? 예, "for"또는 "loop"가 적절하게 들립니다 - 검색하십시오. – user2864740

+0

나는이 질문이 진짜 복제물이라고 생각하지 않는다. 이것은 더 구체적입니다. 그리고 자바 8 솔루션은 map.values ​​(). stream(). mapToDouble (Double :: doubleValue) .sum() – Kuzeko

답변

13

,이 시도 :

float sum = 0.0f; 
for (float f : map.values()) { 
    sum += f; 
} 

을 끝에서, sum 변수는 대답이 포함됩니다. 그래서 예, Map의 값을 가로 지르는 데는 for 루프를 사용하는 것이 가장 좋습니다. 당신은 또한 while 루프 반복자를 사용할 수 있지만 for 루프가 실제로 의도 된 목적을 위해 잘 봉사

+0

당신은 나를 때렸다! +1 – luksch

+0

시간 내 주셔서 감사합니다. 작동하며 원하는 결과를 얻었습니다 !! – kennechu

+1

java 8에서 수행 할 수 있습니다 map.values ​​(). stream(). sum() – rvazquezglez

4
Float sum = 0f; 
for (Float val : map.values()){ 
    sum += val; 
} 

//sum now contains the sum! 

...

+0

시간 내 주셔서 감사합니다. – kennechu

4

당신은 확실히 for-loop를 사용하는 것을 할 수 있습니다. 것 (부동) '의

for (float value : map.values()) { 
    sum += value; 
} 
관련 문제