不带迭代器的ConcurrentModificationException(隐式或显式)。是真的吗?

时间:2014-03-18 18:39:54

标签: java multithreading exception

我已阅读有关ConcurrentModificationException的内容。有关获取此异常的大量信息,以防迭代收集并尝试对其进行修改。

对我来说很有趣我可以在不使用迭代器的情况下获得此异常吗?

2 个答案:

答案 0 :(得分:0)

throw new ConcurrentModificationException();

答案 1 :(得分:0)

除了迭代器之外,标准列表实现中没有太多地方抛出此异常。评论中已经提到了writeObject方法。另一个是在尝试修改从subList获得的ArrayList时,ArrayList在此期间已被修改:

List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");

// Obtain the subList
List<String> subList = list.subList(1,2);

// Modify the backing list
list.add("X");

// Try to modify the subList: Causes ConcurrentModificationException
subList.add("Y");