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: Die Verwendung der oben genannten Schreibmethode führt zu der oben genannten ConcurrenModificationException-Ausnahme. Der Grund dafür ist, dass die Sammlung nicht gleichzeitig durchlaufen und gelöscht werden kann . Die korrekte Schreibweise von
lautet wie folgt:
1. Liste durchlaufen 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. Set durchqueren und löschen
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(); } }
Die oben beschriebene Methode (empfohlen) zum Durchlaufen und Löschen von Elementen in Listen- und Set-Sammlungen in Java gilt für den gesamten Inhalt, der von geteilt wird Ich hoffe, der Herausgeber kann Ihnen eine Referenz geben und ich hoffe, dass Sie die chinesische PHP-Website unterstützen.
Weitere Methoden zum Durchlaufen und Löschen von Elementen in List- und Set-Sammlungen in Java (empfohlen) finden Sie auf der chinesischen PHP-Website für verwandte Artikel!