Ich habe eine ArrayList, die eine Reihe von Elementen enthält, die ich entfernen möchte. Ich habe die IDs der zu entfernenden Elemente in einer anderen Liste gespeichert. Dachte der folgende Code sollte trivialer arbeiten, aber aus irgendeinem Grund, die remove() Anrufe werden einen falschen Wert zurückgibt:Warum funktioniert mein ArrayList.remove (id) -Aufruf nicht?
ArrayList<Integer> toRemove = new ArrayList<Integer>();
ArrayList<JCheckBox> al = new ArrayList<JCheckBox>();
/* Code that adds a bunch of items to al, and a few integers to toRemove */
System.out.println("Size before removing: " + al.size());
for (int i = toRemove.size() - 1; i >= 0; i--) {
System.out.println("Removing id: " + toRemove.get(i) + ": ");
System.out.println(al.get(toRemove.get(i)));
System.out.println(al.remove(toRemove.get(i)));
}
System.out.println("Size after removing: " + al.size());
ich es bekommen würde, wenn die get() Anruf auch einen falschen Wert zurückgegeben, aber es Liefert das Objekt tatsächlich zurück. Was fehlt mir hier?
Der Ausgang des Code oben:
Size before removing: 3
Removing id: 2:
javax.swing.JCheckBox[...]
false
Size after removing: 3
Können Sie genaue Deklarationen für 'al' und 'toRemove' posten? –
Hat die gewünschten Definitionen gepostet. – zigdon