Als ich heute an einem Projekt arbeitete, musste ich bestimmte Elemente in List und Set löschen. Ich habe beim Durchlaufen die Methode zum Durchlaufen und Löschen verwendet, aber die folgende Ausnahme wurde gemeldet:
ConcurrentModificationException
Um es in Zukunft nicht zu vergessen, notieren Sie es mit einem schlechten Stift wie folgt:
Die Art und Weise, wie der Fehlercode geschrieben wird, d. h. die Art und Weise, die obige Ausnahme zu melden:
Set<CheckWork> set = this.getUserDao().getAll(qf).get(0).getActionCheckWorks(); for(CheckWork checkWork : set){ if(checkWork.getState()==1){ set.remove(checkWork); } }
Hinweis: Wenn Sie die obige Schreibmethode verwenden, werden Sie einen Bericht erhalten. Der Grund für die oben genannte ConcurrenModificationException ist, dass die Sammlung beim Durchlaufen nicht gelöscht werden kann. Die korrekte Schreibweise von
ist wie folgt:
1. Liste durchqueren und löschen
List<CheckWork> list = this.getUserDao().getAll(); Iterator<CheckWork> chk_it = list.iterator(); while(chk_it.hasNext()){ CheckWork checkWork = chk_it.next(); if(checkWork.getPlanState()==1){ chk_it.remove(); } }
2 >Im obigen Java-Artikel Die Methode zum Durchlaufen und Löschen von Elementen in Listen- und Set-Sammlungen (empfohlen) ist der gesamte vom Herausgeber geteilte Inhalt. Ich hoffe, dass er Ihnen eine Referenz geben kann, und ich hoffe, dass Sie dem mehr Aufmerksamkeit schenken Chinesische PHP-Website.
Set<CheckWork> set = this.getUserDao().getAll().get(0).getActionCheckWorks(); Iterator<CheckWork> it = set.iterator(); while(it.hasNext()){ CheckWork checkWork = it.next(); if(checkWork.getState()==1){ it.remove(); } }