So che se proverei a rimuovere dalla raccolta il looping con il ciclo semplice otterrò questa eccezione: java.util.ConcurrentModificationException
. Ma sto usando Iterator e mi genera ancora questa eccezione. Qualche idea sul perché e come risolverlo?java.util.ConcurrentModificationException con iteratore
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();
}
}
}
}
Ci sono due iteratori annidati in modo che probabilmente non risolvere il problema. – assylias
Ancora lo stesso. – user2219247
@assylias È vero, non ho visto il secondo. Ho aggiunto qualche spiegazione su questa eccezione. –