从ArrayList中删除多个元素
问题内容:
我有一堆索引,我想从中删除这些索引中的元素ArrayList
。我无法做一个简单的remove()
s 序列,因为每次移除后元素都会移动。我该如何解决?
问题答案:
按降序对索引进行排序,然后将其一一删除。如果这样做,删除将不会影响以后要删除的任何索引。
如何对它们进行排序将取决于您用来存储索引的集合。如果是列表,则可以执行以下操作:
List<Integer> indices;
Collections.sort(indices, new Comparator<Integer>() {
public int compare(Integer a, Integer b) {
//todo: handle null
return b.compareTo(a);
}
}
编辑
@aioobe找到了我找不到的助手。除了上述内容,您还可以使用
Collections.sort(indices, Collections.reverseOrder());