Pourquoi mon ArrayList.supprimer(id) d'appel ne fonctionne pas?

J'ai une liste de tableaux, qui comprend un certain nombre d'éléments que je veux supprimer. J'ai les id des éléments à supprimer stockées dans une autre liste. Compris le code suivant devrait fonctionner de façon triviale, mais pour une raison quelconque, le supprimer() les appels sont de retour pour valeur faux:

  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 j'obtiendrais si le get() appel a également présenté une fausse valeur, mais il ne fait retourner l'objet en question. Ce qui me manque ici?

La sortie du code ci-dessus:

Size before removing: 3
Removing id: 2: 
javax.swing.JCheckBox[...]
false
Size after removing: 3
Vous pouvez poster exacte des déclarations pour " al " et "toRemove'?
Posté le définitions demandées.

OriginalL'auteur zigdon | 2010-08-26