Я знаю, если бы попытался удалить из цикла коллекции через него с помощью простого цикла, я получаю это исключение: java.util.ConcurrentModificationException
. Но я использую Iterator, и он все еще генерирует мне это исключение. Любая идея, почему и как ее решить?
HashSet<TableRecord> tableRecords = new HashSet<>();
...
for (Iterator<TableRecord> iterator = tableRecords.iterator(); iterator.hasNext(); ) {
TableRecord record = iterator.next();
if (record.getDependency() == null) {
for (Iterator<TableRecord> dependencyIt = tableRecords.iterator(); dependencyIt.hasNext(); ) {
TableRecord dependency = dependencyIt.next(); //Here is the line which throws this exception
if (dependency.getDependency() != null && dependency.getDependency().getId().equals(record.getId())) {
iterator.remove();
}
}
}
}