Entschuldigt die blöde Frage: die Forumsuche hat nicht viel ergeben, und google findet irgendwelche Vorschläge, die mir nicht besonders vertrauenswürdig erscheinen :roll:
Angenommen, ich will aus einer Collection alle Elemente löschen, die eine bestimmte Bedingung erfüllen. Könnte mir jemand sagen, ob es eine "schönere" Methode gibt, als die Collection durchzuiterieren, alle Elemente in einer separaten Liste zu speichern, und anschließend per removeAll(Collection) diese Elemente zu entfernen?
Bisher habe ich das irgendwie so gemacht:
weil ansonsten bei all meinen Versuchen irgendwann eine ConcurrentModificationException geflogen ist (Element entfernt => Iterator ungültig)
Es gibt doch bestimmt eine schönere Möglichkeit, nur dummerweise fällt mir diese gerade nicht ein. Wäre sehr dankbar wenn mir jemand einen Tipp geben könnte.
greetz, Andrey.
Angenommen, ich will aus einer Collection alle Elemente löschen, die eine bestimmte Bedingung erfüllen. Könnte mir jemand sagen, ob es eine "schönere" Methode gibt, als die Collection durchzuiterieren, alle Elemente in einer separaten Liste zu speichern, und anschließend per removeAll(Collection) diese Elemente zu entfernen?
Bisher habe ich das irgendwie so gemacht:
Code:
import java.util.*;
class TEST{
public static void main(String args[])throws Exception
{
LinkedList<Integer> list=new LinkedList<Integer>();
list.add(Integer.valueOf(2));
list.add(Integer.valueOf(1));
list.add(Integer.valueOf(2));
list.add(Integer.valueOf(3));
list.add(Integer.valueOf(2));
//die 2 soll entfernt werden
List<Integer> trash=new LinkedList<Integer>();
for(Iterator<Integer> i=list.iterator(); i.hasNext(); ){
Integer n=i.next();
if(n.equals(Integer.valueOf(2))) trash.add(n);
}
list.removeAll(trash);
System.out.println(list);
}
}
Es gibt doch bestimmt eine schönere Möglichkeit, nur dummerweise fällt mir diese gerade nicht ein. Wäre sehr dankbar wenn mir jemand einen Tipp geben könnte.
greetz, Andrey.