有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

列表中的java ConcurrentModificationException。等于

我有一个单线程程序和一个类Grid,它包含ListSheet对象,其中Sheet可以是列表或RowRow对象是ValueList

我使用Eclipse默认值创建了hashCode()equals()方法。在某些情况下,比如当我试图把一个Grid放在一个HashMap中时,我得到:

java.util.ConcurrentModificationException
at java.util.ArrayList$SubList.checkForComodification(ArrayList.java:1231)
at java.util.ArrayList$SubList.listIterator(ArrayList.java:1091)
at java.util.AbstractList.listIterator(AbstractList.java:299)
at java.util.AbstractList.equals(AbstractList.java:519)
at com.informatica.atlantic.grid.Sheet$Row.equals(Sheet.java:174)
at java.util.AbstractList.equals(AbstractList.java:523)
at com.informatica.atlantic.grid.Sheet.equals(Sheet.java:459)
at java.util.AbstractList.equals(AbstractList.java:523)
at com.informatica.atlantic.common.utils.AList.equals(AList.java:55)
at com.informatica.atlantic.grid.Grid.equals(Grid.java:152)
at com.informatica.atlantic.grid.GridData.equals(GridData.java:76)
at java.util.HashMap.getNode(HashMap.java:571)
at java.util.HashMap.get(HashMap.java:556)

我没有使用iterator.remove()或类似的东西。然而,我确实有一些列表,它们实际上是其他List的子列表,并且在一些Grid对象之间共享

所以:

  1. 会发生什么?当我以只读方式迭代时,没有任何线程,为什么会出现问题
  2. 如何开始调试它

共 (0) 个答案