Hashtable中最大值的关键

cho*_*hop 4 java hashtable max

嗨,我有以下对象:

Hashtable<Object, Double>
Run Code Online (Sandbox Code Playgroud)

我想找到表中最大Double值的键.最简单的方法吗?

谢谢

twa*_*249 6

没有内置函数可以获得最大值,Hashtable您必须遍历所有键并手动确定最大值.

Object maxKey=null;
Double maxValue = Double.MIN_VALUE; 
for(Map.Entry<Object,Double> entry : table.entrySet()) {
     if(entry.getValue() > maxValue) {
         maxValue = entry.getValue();
         maxKey = entry.getKey();
     }
}
Run Code Online (Sandbox Code Playgroud)

编辑:查找最多值的1个以上的键

ArrayList<Object> maxKeys= new ArrayList<Object>();
Double maxValue = Double.MIN_VALUE; 
for(Map.Entry<Object,Double> entry : table.entrySet()) {
     if(entry.getValue() > maxValue) {
         maxKeys.clear(); /* New max remove all current keys */
         maxKeys.add(entry.getKey());
         maxValue = entry.getValue();
     }
     else if(entry.getValue() == maxValue)
     {
       maxKeys.add(entry.getKey());
     }
}
Run Code Online (Sandbox Code Playgroud)