У меня есть ArrayList, который включает в себя несколько элементов, которые я хочу удалить. У меня есть идентификаторы элементов для удаления, сохраненные в другом списке. Фигурный следующий код должен работать тривиальным, но по какой-то причине, удалить() вызовы возвращает ложное значение:Почему мой вызов ArrayList.remove (id) не работает?
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());
Я бы получить его, если прибудет() вызов также возвращается ложное значение, но действительно возвращает объект, о котором идет речь. Что мне здесь не хватает?
Выход выше код:
Size before removing: 3
Removing id: 2:
javax.swing.JCheckBox[...]
false
Size after removing: 3
Можете ли вы разместить точную декларацию для 'al' и 'toRemove'? –
Изложенные определения. – zigdon