我想找到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个条目。
答案 0 :(得分:20)
在Collections#max()
上使用Map#values()
。
int max = Collections.max(h.values());
请注意,您应该使用Map#put()
来放置元素,而不是Map#add()
。
答案 1 :(得分:1)
a)你不写吗
h.put ("a", 1);
b)你不能得到这样的值:
java.util.Collection <Integer> ci = h.values ();
// [1, 5, 3, 5, 2, 1]
现在搜索值。
答案 2 :(得分:0)
另一种方法:
new TreeSet(h.values()).last()