remove arraylist by id not work

Darknet

Bekanntes Mitglied
Ich möchte Elemente aus der Array List enfernen dazu habe ich folgenden Code:

Code:
ArrayList<Integer> remove = new ArrayList<Integer>();
   for (int i=1; i<container.size(); i++) {
   container.get(i).getpoints();boolean found = false;
   for (String o : container.get(i).getpoints()) {
       
       for (String a : container.get(i-1).getpoints()) {
           if(a != o) found = true;
       }
       if (found == false) container.remove(i-1);remove.add(i-1);
   }
   }
   for (Integer intergers : remove) {
   
       System.out.println("remove:"+container.remove(intergers));
   }

System.out.println("remove:"+container.remove(intergers)); gibt immer false zurück warum?
 
Mal abgesehen davon, dass es keine gute Idee ist, Elemente aus der Liste zu entfernen, über die man gerade iteriert: Du entfernst i-1 aus container, fügst i-1 zu remove hinzu und erwartest dann, dass i-1 nochmal aus container entfernt wird?
 
Benutze einen ListIterator, um das (falsche) Verwalten deiner zwei Listen zu vermeiden. Mit Hilfe des ListIterators kannst du über eine Liste iterieren und dabei Elemente entfernen.
Java:
public void remove(Integer elementToRemove) {
    for(ListIterator<Integer> listIterator = container.listIterator(); listIterator.hasNext();) {
        Integer currentElement = listIterator.next();
        if( /*deine Bedingung zum Löschen*/ currentElement.equals(elementToRemove) )  {
            listIterator.remove();
        }
    }
}
oder alternativ Collection.removeIf.
 

Neue Themen


Zurück
Oben