您可以使用
Iterator.remove(),如果使用(Map.Entry的)entrySet迭代器,则可以使用
Map.Entry.setValue()。其他一切都关闭了-
您不应该直接更改地图,某些地图不允许上述一种或两种方法。
具体来说,您的(1),(2)和(3) 不 允许的。
您 可能 会通过该
Map对象来设置现有键的值,但是
Set.iterator()文档明确地排除了这一点,它将针对具体实现:
如果在对集合进行迭代时修改了映射(除非通过迭代器自己的remove操作或通过迭代器返回的映射条目上的setValue操作),则迭代的
结果是不确定的 。(添加了重点)



