Heim  >  Artikel  >  Java  >  Durchlaufen und Löschen von Elementen in List- und Set-Sammlungen in Java (empfohlen)

Durchlaufen und Löschen von Elementen in List- und Set-Sammlungen in Java (empfohlen)

高洛峰
高洛峰Original
2017-01-23 16:52:132145Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn