您不能为此使用foreach语句。foreach在内部使用迭代器:
此类的迭代器和listIterator方法返回的迭代器是快速失败的:如果在创建迭代器之后的任何时间以任何方式对列表进行结构修改,则除了通过迭代器自己的remove或add方法之外,迭代器都会抛出ConcurrentModificationException。
(来自ArrayList javadoc)
在foreach语句中,您无权访问迭代器的add方法,在任何情况下,它都不是所需的添加类型,因为它不会在末尾追加。您需要手动遍历列表:
int listSize = list.size();for(int i = 0; i < listSize; ++i) list.add("whatever");请注意,这仅对允许随机访问的列表有效。您可以通过检查列表是否实现RandomAccess标记接口来检查此功能。ArrayList具有随机访问权限。链表则没有。



