曾经碰到这样一个java题,一次for循环,只留下List中下标为偶数的值,本以为直接判断下标为奇数然后list.remove(i),就可以,后来才发现list为可变集合,list.remove(i)的同时下标也会发生变化,所取出的偶数列错误,正解如下:
for (int i = 0; i < list.size(); i++) {
if (i % 2 == 0) {// i % 2 !=0 同样好使
list.remove(i);
}else{
list.remove(i);
}
}
这样list中就只存在下标为偶数的值了if (i % 2 == 0) {// i % 2 !=0 同样好使
list.remove(i);
}else{
list.remove(i);
}
}