小编Nim*_*tar的帖子

我可以在迭代过程中使用keySet修改HashMap吗?

我知道在迭代期间不应修改集合。因此,我们应该有解决方法。

我有一个代码:

Map<Key, Value> map = getMap(); // map generating is hidden
for (Key key : map.keySet()) {
  if (isToRemove(key)) {
    map.remove(key);
  } else {
    map.put(key, getNewValue());
  }
}
Run Code Online (Sandbox Code Playgroud)

是未定义的行为还是有效的代码?

keySet文档说,映射的更改反映在返回的set中,反之亦然。这是否意味着以前的代码是不可接受的?

java iteration collections

2
推荐指数
1
解决办法
773
查看次数

标签 统计

collections ×1

iteration ×1

java ×1