在最后一行中,我试图获取值,增加它然后再放回去。问题:
为什么会引发编译错误“Invalid argument to operation++/--”
为了增加这个特定示例中的值,是否有更好的方法?
Map<String, Integer> map = new HashMap<>(); map.put("hello", 4); // we wanna get 4 to increase it map.put("hello",++(map.get("hello"))); // Invalid argument to operation ++/--
最佳答案
您只能对变量执行++
(不能对任意表达式)。使用 ... + 1
代替:
map.put("hello", map.get("hello") + 1);
或者,如果您使用的是 Java 8:
map.merge("hello", 1, (a,b) -> a + b));
(请注意,Java 没有任何与 C++ 引用相对应的功能。)
关于java - 为什么在尝试增加值并将其放回 HashMap 时会引发编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29723472/