Tengo una ArrayList, que incluye una serie de elementos que deseo eliminar. Tengo los identificadores de los elementos para eliminar almacenados en otra lista. Figuraba el siguiente código debería funcionar trivial, pero por alguna razón, el remove() las llamadas se devuelve un valor falso:¿Por qué mi llamada ArrayList.remove (id) no funciona?
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());
que lo conseguiría si el get() llamada también devuelve un valor falso, pero realmente devuelve el objeto en cuestión. ¿Que me estoy perdiendo aqui?
La salida del código anterior:
Size before removing: 3
Removing id: 2:
javax.swing.JCheckBox[...]
false
Size after removing: 3
¿Puedes publicar declaraciones exactas de 'al' y 'toRemove'? –
Publicadas las definiciones solicitadas. – zigdon