Java 这段代码如何遍历HashMap的整数值?
我刚刚完成了一门Sololearn课程,在这门课程中,我必须编写一段代码,从HashMap中获取得分最高的玩家。但是我不明白这段代码怎么知道我对值感兴趣,而不是键感兴趣:Java 这段代码如何遍历HashMap的整数值?,java,loops,hashmap,Java,Loops,Hashmap,我刚刚完成了一门Sololearn课程,在这门课程中,我必须编写一段代码,从HashMap中获取得分最高的玩家。但是我不明白这段代码怎么知道我对值感兴趣,而不是键感兴趣: public void getWinner(){ String nameArr[] = new String[players.size()]; nameArr = players.keySet().toArray(nameArr); String bestplayer = nameArr[0
public void getWinner(){
String nameArr[] = new String[players.size()];
nameArr = players.keySet().toArray(nameArr);
String bestplayer = nameArr[0];
int maxValue = players.get(nameArr[0]);
for(String player : nameArr){
if(players.get(player) > maxValue){
bestplayer = player;
maxValue = players.get(player);
}
}
System.out.println(bestplayer);
}
正如您所看到的,不知何故,程序自动知道我想要的是播放器的整数值,而不是包含其名称的字符串
HashMap包含它们的名称作为键,分数作为整数。来自:
返回指定键映射到的值
例如在int val=players.get(player)
中:
- HashMap是
(映射为players
) - 键是数据类型
String
- 返回的值是数据类型
的Integer
,可以与val
maxValue
int maxValue = players.get(nameArr[0]);
现在他如何知道HashMap的键是通过以下代码完成的:
String nameArr[] = new String[players.size()];
nameArr = players.keySet().toArray(nameArr);
首先,它创建了一个与hashmap大小相同的字符串数组,然后取出密钥集并将其转换为数组。我们在最后一部分看到的for循环是通过循环键集数组并通过HashMap取出值来计算玩家的最高分数。get(String key)可能通过解释原始HashMap是Thank来明确答案,更新了Itoh,因此Maps上的.get()方法被编程来获取键的值,我用一个数组和一个增强的循环浏览了地图。非常感谢你!