Ho una lista array, che include un numero di elementi che voglio rimuovere. Ho gli ID degli elementi da rimuovere memorizzati in un altro elenco. Figured il seguente codice dovrebbe funzionare banalmente, ma per qualche ragione, il remove() le chiamate stanno tornando un valore falso:Perché la mia chiamata ArrayList.remove (id) non funziona?
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());
che avrei avuto se la get() chiamata anche restituito un valore falso, ma è restituisce effettivamente l'oggetto in questione. Cosa mi manca qui?
L'uscita del codice di cui sopra:
Size before removing: 3
Removing id: 2:
javax.swing.JCheckBox[...]
false
Size after removing: 3
Puoi pubblicare dichiarazioni esatte per "al" e "toRimuovi"? –
Inserito le definizioni richieste. – zigdon