从数组列表中删除项

2022-08-31 10:01:47

我有一个假设,它有8个项目A-H,现在我想从我如何做到这一点中删除存储在int数组中的1,3,5个位置的项目。ArrayListlistlist

我正在尝试这样做

ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
list.add("G");
list.add("H");

int i[] = {1,3,5};

for (int j = 0; j < i.length; j++) {
    list.remove(i[j]);
}

但是,在删除数组位置的第一个项目更改后,在下一个迭代中,它将删除错误的元素或给出异常。


答案 1

在此特定情况下,应按降序删除元素。第一个索引,然后是 。这将从列表中删除元素,而不会产生不良副作用。531

for (int j = i.length-1; j >= 0; j--) {
    list.remove(i[j]);
}

答案 2

您可以使用 中移除元素,ArrayListListIterator

ListIterator listIterator = List_Of_Array.listIterator();

 /* Use void remove() method of ListIterator to remove an element from List.
     It removes the last element returned by next or previous methods.
 */
listIterator.next();

//remove element returned by last next method
listIterator.remove();//remove element at 1st position
listIterator.next();
listIterator.next();
listIterator.remove();//remove element at 3rd position
listIterator.next();
listIterator.next();
listIterator.remove();//remove element at 5th position

推荐