Java 列表上的ConcurrentModificationException.equals()
我有一个单线程程序和一个类Java 列表上的ConcurrentModificationException.equals(),java,exception,collections,Java,Exception,Collections,我有一个单线程程序和一个类Grid,它包含表对象的列表,其中表可以是列表或行。行对象是值的列表 我使用Eclipse默认值创建了hashCode()和equals()方法。在某些情况下,例如当我尝试将网格放入哈希映射中时,我会得到: java.util.ConcurrentModificationException at java.util.ArrayList$SubList.checkForComodification(ArrayList.java:1231) at java.util.Arr
Grid
,它包含表
对象的列表
,其中表
可以是列表或行
。行
对象是值的列表
我使用Eclipse默认值创建了hashCode()
和equals()
方法。在某些情况下,例如当我尝试将网格
放入哈希映射
中时,我会得到:
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()
或类似的工具。但是,我确实有一些列表,它们实际上是其他列表的子列表
,并且在一些网格
对象之间共享
因此:
你为什么不发布你的代码呢?尽管你否认了,但这个错误意味着你试图在遍历其中一个列表的同时修改它。检查是否有包在使用迭代器。无需使用
remove()
即可获得ConcurrentModificationException
。请参见此处:@passion-我的代码分布在几十个文件中。为什么不发布您的代码呢?尽管您否认,但此错误意味着您在迭代某个列表的同时试图修改它。请检查是否有包正在使用迭代器。无需使用remove()
即可获得ConcurrentModificationException
。请看这里:@passion-我的代码分布在几十个文件中。