【发布时间】:2016-06-08 00:45:11
【问题描述】:
我想对属于ArrayList<HashMap<String, Integer>> 的HashMap<String, Integer> 做一些操作。但我得到了以下错误:Invalid argument to operation ++/-- when doing ths logEntry.get(key) ++ as below:
....
Integer tempSize = ...;
List<HashMap<String, Integer>> tokenCollection = new ArrayList<>(tempSize);
while(tokenCollection.size() < tempSize) {
tokenCollection.add(new HashMap<String, Integer>());
}
....
for (int i = 0; i < tempSize; i++) {
String key = ...;
HashMap<String, Integer> logEntry = tokenCollection.get(i);
if (logEntry.containsKey(key)) {
logEntry.get(key) ++; // ERROR
} else {
logEntry.put(key, 1);
}
}
然后,我必须将代码更改为以下代码,它可以工作:
if (logEntry.containsKey(key)) {
Integer tempValue = logEntry.get(key);
tempValue++;
logEntry.remove(key);
logEntry.put(key, tempValue);
} else {
logEntry.put(key, 1);
}
但这增加了很多额外的操作。我可以避免这种情况吗?另外,我认为我这样做的方式太复杂或太愚蠢,有没有更简单的方法?
【问题讨论】:
-
无意将其作为骗子关闭-只是指出stackoverflow.com/questions/8536223/…是一个类似的问题。
-
@ErickG.Hagstrom 感谢您的提交。这是一个错误。
标签: java arrays list arraylist hashmap