2011-03-09 4 views
2

Hashtable의 값이 Integer 인 가장 큰 값을 찾고 싶습니다. 이를 달성하기위한 빠르고 효과적인 방법이 있습니까? 자바 Hashtable 최대 값을 찾으십시오

내가 위의 예에서 5 수있는 최대 값을 찾을 필요가

Hashtable<String,Integer> h = new Hashtable<String,Integer>(); 

h.add("a",1); 
h.add("b",5); 
h.add("c",3); 
h.add("d",5); 
h.add("e",2); 
h.add("f",1); 

int max = ???; 

... 내 코드입니다. Hashtable은 항상 작으며 평균 100 개 미만입니다.

+2

해시 테이블을 통해 반복 하시겠습니까? – iluxa

+0

많이 감사하는 사람 –

답변

20

Collections#max()Map#values()에 사용하십시오. 당신이 요소를 넣어 Map#put()를 사용한다

int max = Collections.max(h.values()); 

참고, 더 Map#add() 없습니다.

+0

와아, 나는 그것을 모르고 있었다! – zengr

0

또 다른 방법 :

new TreeSet(h.values()).last() 
+0

그러나 항상 값을 반복하는 것보다 느립니다. –

1

는) 당신이

h.put ("a", 1); 

B 쓰지 않는다)는이 같은 값을 가져올 수 없습니다 :

java.util.Collection <Integer> ci = h.values(); 
// [1, 5, 3, 5, 2, 1] 

은 이제 검색 값.

관련 문제