JAVA Hashtable найти максимальное значение - PullRequest
2 голосов
/ 09 марта 2011

Я хочу найти наибольшее значение в значениях Hashtable из Integer.Есть ли какой-нибудь быстрый и эффективный способ добиться этого?

Это мой код ...

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 = ???;

Мне нужно найти максимальное значение, которое в приведенном выше примере равно 5,Hashtable всегда будет маленьким, в среднем менее 100 записей.

Ответы [ 3 ]

20 голосов
/ 09 марта 2011

Используйте Collections#max() на Map#values().

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

Обратите внимание, что вы должны использовать Map#put() дляэлементов, нет Map#add().

1 голос
/ 09 марта 2011

а) Разве вы не пишете

h.put ("a", 1); 

б) Разве вы не можете получить такие значения:

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

Теперь выполните поиск значений.

0 голосов
/ 09 марта 2011

Другой подход:

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