【发布时间】:2010-10-04 04:24:09
【问题描述】:
假设我在 Java 中迭代一个 Map...我不清楚在迭代它的过程中我可以对该 Map 做什么。我想我对迭代器接口删除方法的 Javadoc 中的这个警告很困惑:
[...] 如果在迭代过程中通过调用此方法以外的任何方式修改了底层集合,则迭代器的行为是未指定的。
我确信我可以毫无问题地调用 remove 方法。但是在遍历 Map 集合时,我可以:
使用 Map 类 put 方法更改与键关联的值(使用现有键放置)?
使用 Map 类 put 方法添加新条目(使用新键放置)?
使用 Map 类的 remove 方法删除条目?
我的猜测是我可能可以安全地执行 #1(放入现有密钥),但不能安全地执行 #2 或 #3。
提前感谢您对此的任何澄清。
【问题讨论】: