【发布时间】:2013-08-13 16:41:05
【问题描述】:
我有一个链表,其中每个元素都有键和值(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。应该改变什么来摆脱这个。
【问题讨论】:
-
为什么不
LinkedHashSet? -
@JunedAhsan,恭敬地,不同意。 vjk 使用的是 Iterator.remove(),他的情况比较复杂。更接近这个:stackoverflow.com/questions/9268399/…
-
@Taylor 同意,这就是为什么使用“可能”而不是“准确”的原因 ;-)
标签: java