Java 需要在指定的多个索引处从列表中删除,而不会出现新的大小问题

Java 需要在指定的多个索引处从列表中删除,而不会出现新的大小问题,java,for-loop,Java,For Loop,我有一个索引数组,其中的元素必须从列表中删除,例如:(4)、(7)、(8) 问题是: 1) 无法使用For循环,每次删除后大小都会更改(ArrayList.remove(i)) 2) 无法将迭代器与更新的计数器一起使用,计数器也将不再工作(Iterator.remove())。在这里找到了一个很好的解决方案: 这似乎是唯一快速简单的解决方案。首先反向排序,然后遍历索引并删除 Collections.sort(indices, Collections.reverseOrder()); for (i

我有一个索引数组,其中的元素必须从列表中删除,例如:(4)、(7)、(8)

问题是:

1) 无法使用For循环,每次删除后大小都会更改(
ArrayList.remove(i)


2) 无法将迭代器与更新的计数器一起使用,计数器也将不再工作(
Iterator.remove()
)。

在这里找到了一个很好的解决方案:

这似乎是唯一快速简单的解决方案。首先反向排序,然后遍历索引并删除

Collections.sort(indices, Collections.reverseOrder());
for (int i : indices)
    strs.remove(i);