Java调整嵌套Hashmap值

标签 java hashmap

我试图使用此处给出的想法来调整嵌套 HashMap ,但我的解决方案不起作用:How to update a value, given a key in a java hashmap? 。我的嵌套 HashMap 是 shoppingLists。它包含作为键的购物列表 listID 的外部 HashMap 和作为值的项目的 HashMap 。项目 HashMap 包含 itemName 作为键,项目的数量作为值。 adjustItemAmount 尝试将项目的数量调整给定数量 x

HashMap<String, HashMap<String, Integer>> shoppingLists = new HashMap<>();

public void adjustItemAmount(String itemName, int x, String listID) {
  int current_amount = shoppingLists.get(listID).get(itemName);
  HashMap<String, Integer> items = shoppingLists.get(listID);
  HashMap updatedItems = items.put(itemName, items.get(itemName) + x);
  shoppingLists.put(listID, updatedItems);
}

HashMap UpdatedItems = items.put(itemName,items.get(itemName)+x); 表明 Java 需要一个 hashmap,但会获取一个整数。我不明白这是怎么回事。

最佳答案

HashMap的put方法不返回HashMap。它返回值。因此这一行是不正确的:

    HashMap updatedItems= items.put(itemName,items.get(itemName)+x);

返回类型将为 Integer,因为项目映射为 <String, Integer>类型。

关于Java调整嵌套Hashmap值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51758793/

相关文章:

java - 指示 JVM validator 何时验证类

java - 面向对象语言和非面向对象语言有什么区别?

java - ArrayList<X> 作为 HashMap 中的键,但 X[] 数组不起作用

java - ArrayList 还是不同键的映射,更快?

java - 如何让角色跳跃,无论是在物体上还是普通跳跃?

java - 无法运行 Gradle 应用引擎任务

java : cannot set Map field

java - MapWritable 用新添加的键替换所有现有键 - Hadoop MapReduce 2.6.4

python - 使用预计算针对特定用例优化 Python 算法

java - 尝试使用 Apache poi api 读取 Excel 工作表时出现 NoClassDefFoundError