我有一个链表,其中每个元素都有键和值(ArrayList<dataStructure>
)。我想合并具有相同键的元素。
Iterator<CElem> oItr = linkedList.iterator();
{
while (oItr.hasNext())
{
CElem outer = oItr.next();
Iterator<CElem> iItr = linkedList.iterator();
{
while (iItr.hasNext())
{
CElem inner = iItr.next();
if (outer.equals(inner))
continue;
if (outer.getKey().equals(inner.getKey()))
{
outer.getValues().addAll(inner.getValues());
iItr.remove();
}
}
}
}
}
虽然我正在使用迭代器删除方法来获取 java.util.ConcurrentModificationException
.应该改变什么来摆脱这个。
最佳答案
你用你的一个迭代器删除元素,因此第二个迭代器不知道这个删除并且抛出 ConcurrentModificationException
顺便说一句:
你应该考虑使用 some multimap代替具有键值对的列表
关于java - 去除重复链表并发修改异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18214651/