添加到哈希表中的值 [Java]

Adding to the value in a Hashtable [Java]

我是 java 的新手,我刚刚阅读有关 Hashtable 的内容,想知道如何操作它们。

例如,如果我有 table

Hashtable<String, Integer> goalScorers = new Hashtable<String, Integer>();

然后我用名字作为键和 0

处的整数值填充它
goalScorers.put("Ronaldo", 0);
goalScorers.put("Messi", 0);

有什么方法可以让我制作一个方法,例如

public void addGoals(String, int) 

可以将int值添加到作为字符串放入的相应播放器中。因此,如果罗纳尔多得分两分,我可以将 2 添加到当前分配给该键的任何值(所以 0+2 然后下一次 2+ 任何 int 值)?

编辑:谢谢大家,很明显现在我已经明白了(它是 12:30am 所以这就是我的借口)

我不确定这里有什么困惑,但这里有一个可能的方法来完成你所要求的利用 HashTable#get:

public void addGoals(String player, int score) {
  goalScorers.put(player, goalScorers.get(player) + score);
}

是的,您可以通过HashTable.get(Object key)方法获取当前分数。请注意,如果玩家尚未在 table.

中,这将 return 为 null

例如:

public void addGoals(String player, int add )
    Integer currentScore = goalScorers.get( player );
    int newScore = (null == currentScore)
         ? add
         : currentScore + add;
    goalScorers.put( player, newScore );
}

对了,旧的classHashTable同步了。如果不需要,请考虑使用 HashMap

在Java8中,你可以做到

goalScorers.merge("Ronaldo", 2, Integer::sum);

如果还没有 "Ronaldo" 的条目,这将放置值 2,如果已有条目,则将 2 添加到现有条目。

Assuming your Hashtable is global:

public void addGoals(String name, int goals)
{
     goalScorers.put(name, goalScorers.get(name) + goals);  
 }