添加到哈希表中的值 [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);
}
我是 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);
}