【问题标题】:Java: Get hashmap value [closed]Java:获取哈希图值
【发布时间】:2016-05-26 02:40:48
【问题描述】:

我一直在寻找互联网,但我似乎无法找到这个答案。我有一个哈希图:

public Map<String, Integer> killstreaks = new HashMap<String, Integer>();

现在我想调用第二个值,整数。所以通过使用字符串作为参考,我知道我可以做到这一点:

killstreaks.get(//idk)

我只需要弄清楚如何获得第二个值,这样我就可以使用它来使用公式计算出奖励玩家的值。

它的工作原理是玩家杀死某人,我将其存储在其中,玩家姓名和他们所在的连胜,当他们杀死我时,我在连胜中加 1。当他们杀死某人时,我想根据他们的连胜数给他们钱,所以我想使用与名称相比的整数,所以如果我提供名称,它会给出相应的 int,我该如何得到呢?谢谢!

【问题讨论】:

  • 很不清楚你想做什么......
  • Here 是。映射是键和值对。 getKey() getValue().
  • “第二个值”是什么意思?
  • 有hashmap,里面有字符串和整数,我要取整数
  • 你的目标与你已经写过的“我知道我能做到:……”的行动有什么不同?

标签: java hashmap java-8


【解决方案1】:

这就是您可以迭代 Map 的方法:

for (Map.Entry<String, Integer> entry : killstreaks.entrySet()) {
    String key = entry.getKey();
    Integer value = entry.getValue();
    // continue here
}

要从您的 Map 获取特定值 (Integer),请使用:

killstreak.get("yourKey");

从您的评论中看到您希望将条目增加 1,您可以使用:

killstreaks.put(key, killstreaks.get(key) + 1);

而且我看到您使用的是 Java 8,您甚至可以使用更好的 getOrDefault

killstreaks.put(key, killstreaks.getOrDefault(key, 0) + 1);

【讨论】:

  • 很高兴知道新 API 的 一个 新方法,但最好也了解其他一百种方法。如果你想增加特定键的值,你可以使用map.merge(key, 1, Integer::sum),避免双重哈希查找。
  • 谢谢!我可以用它来简化我的代码@Holger
猜你喜欢
  • 2015-06-01
  • 2013-01-09
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 2016-07-22
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多