您好我有以下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();
}
}
有人可以指导我出错吗
提前致谢
答案 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();
}
}