Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这段代码如何遍历HashMap的整数值?_Java_Loops_Hashmap - Fatal编程技术网

Java 这段代码如何遍历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

我刚刚完成了一门Sololearn课程,在这门课程中,我必须编写一段代码,从HashMap中获取得分最高的玩家。但是我不明白这段代码怎么知道我对值感兴趣,而不是键感兴趣:

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

正如您所看到的,players是一个HashMap,这意味着它有一个带有字符串key和整数值的键值对,对吗?因此,要从HashMap中获取值,您需要调用get(key)函数,这就是代码的作用:

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()方法被编程来获取键的值,我用一个数组和一个增强的循环浏览了地图。非常感谢你!