在hashmap中打印出键和最大值

时间:2015-03-04 19:09:36

标签: java hashmap

您好我有以下HashMap

HashMap<String, Integer> normalised = new HashMap<String, Integer>();

并希望打印出地图及其相关密钥中的最高值。

任何人都可以帮我尝试使用以下代码无效

        String maxKey=null;
        int maxValue = Interger.MIN_VALUE; 
        for(Map.Entry<String,Integer> entry : normalised.entrySet()) {
            if(entry.getValue() > maxValue) {
             maxValue = entry.getValue();
             maxKey = entry.getKey();
        }
    }

有人可以指导我出错吗

提前致谢

3 个答案:

答案 0 :(得分:1)

Map.Entry<String, Integer> maxEntry = null;
for (Map.Entry<String, Integer> entry :normalised.entrySet()){
    if (maxEntry == null ||entry.getValue().compareTo(maxEntry.getValue()) > 0){
        maxEntry = entry;
    }
}

如果有多个键具有相同的最大值,您将获得具有最大值的第一个键。

答案 1 :(得分:0)

如果您将拼写错误“整数”更正为“整数”,则您的示例有效。 也可以看看: https://stackoverflow.com/a/5911199/4602991

答案 2 :(得分:0)

这应该可以正常工作:

HashMap<String, Integer> normalised = new HashMap<String, Integer>();
String maxKey=null;
long maxValue = Integer.MIN_VALUE; 
for(String key : normalised.keySet()) {
    if(normalised.get(key).longValue() > maxValue) {
        maxValue = entry.getValue().longValue();
        maxKey = entry.getKey();
    }
}