为什么不使用 add() 将它们放在最后,然后删除旧元素?异常是由于在修改列表后使用了迭代器。答案是使用迭代器保存这三个项目,然后在迭代器之外修改列表。
List<Integer> integers = new ArrayList<Integer>();
Integer keep[] = new Integer[3];
for(Integer i : integers) {
int index = integers.indexOf(i);
if(index==0 || index==1 || index==2) {
keep[i] = i; // save the first three
}
}
// add the first three to the end of the list
integers.add(keep[0]);
integers.add(keep[1]);
integers.add(keep[2]);
// remove the previous first three
integers.remove(0);
integers.remove(1);
integers.remove(2);
我想知道您是否需要integers.remove(0)
根据第 0 个元素是被回收还是留空来做 3 次。