这段代码如何遍历 HashMap 的 Integer 值?
How does this code iterate through the Integer value of the HashMap?
我刚刚完成了 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 包含他们的名字作为键,他们的分数作为整数。
Returns the value to which the specified key is mapped
例如 int val = players.get(player)
:
- HashMap 是
players
(映射 <String, Integer>
)
- 键是
player
数据类型 String
- 返回值为
val
数据类型 Integer
可以与 maxValue
进行比较
如您所见,players 是一个 HashMap,这意味着它有一个包含字符串键和整数值的键值对,对吗?所以要从 HashMap 中获取值,你需要调用一个 get(key) 函数,这就是这段代码所做的:
int maxValue = players.get(nameArr[0]);
现在他是怎么知道HashMap的键的是通过这段代码:
String nameArr[] = new String[players.size()];
nameArr = players.keySet().toArray(nameArr);
首先它创建了一个与哈希图大小相同的字符串数组,然后取出键集并将其转换为数组。我们在最后一部分看到的 for 循环是通过遍历键集数组并通过 HashMap.get(String key)
取出值来计算玩家的最高分
我刚刚完成了 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 包含他们的名字作为键,他们的分数作为整数。
Returns the value to which the specified key is mapped
例如 int val = players.get(player)
:
- HashMap 是
players
(映射<String, Integer>
) - 键是
player
数据类型String
- 返回值为
val
数据类型Integer
可以与maxValue
进行比较
如您所见,players 是一个 HashMap
int maxValue = players.get(nameArr[0]);
现在他是怎么知道HashMap的键的是通过这段代码:
String nameArr[] = new String[players.size()];
nameArr = players.keySet().toArray(nameArr);
首先它创建了一个与哈希图大小相同的字符串数组,然后取出键集并将其转换为数组。我们在最后一部分看到的 for 循环是通过遍历键集数组并通过 HashMap.get(String key)
取出值来计算玩家的最高分