【发布时间】:2018-04-08 17:38:45
【问题描述】:
您好,我想了解 ListIterator 上的添加操作是如何工作的。我不明白为什么第 7 行允许我将项目添加到迭代器并且第 8 行抛出 ConcurrentModificationException。将项目添加到 ListIterator 与将项目添加到 List 有什么区别。两者都在努力实现相同的目标。
List<String> list = new ArrayList<String>();
list.add("hi");
list.add("whats up");
list.add("how are you");
list.add("bye");
ListIterator<String> i = list.listIterator();
while (i.hasNext()) {
System.out.println(i.next());
list.add("Sample"); // Line #7
i.add("Test"); // Line #8
}
System.out.println(list);
【问题讨论】:
-
标题正确吗?
List.add不会抛出 CME,ListIterator.add会。标题另有说明。
标签: java data-structures