У меня есть связанный список, где каждый элемент имеет ключ и значение (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();
}
}
}
}
}
Хотя я использую итераторы удалить methog получение java.util.ConcurrentModificationException
. Что нужно изменить, чтобы избавиться от этого.
Почему не 'LinkedHashSet'? –
Возможный дубликат [Эффективный эквивалент для удаления элементов при повторении коллекции] (http://stackoverflow.com/questions/223918/efficient-equivalent-for-removing-elements-while-iterating-the-collection) –
@JunedAhsan, с уважением, не согласен. vjk использует Iterator.remove(), его ситуация сложнее. Это ближе к этому: http://stackoverflow.com/questions/9268399/java-multiple-iterators-on-a-set-removing-proper-subsets-and-concurrentmodific – Taylor