在for循环里遍历list,然后删除元素会怎样
1个回答
展开全部
从list中删除指定元素可中备以使用remove方法来实现:
ArrayList al = new ArrayList();
al.add("a");
al.add("b");
//al.add("b");
//al.add("c");
//al.add("d");
for (int i = 0; i < al.size(); i++) {
if (al.get(i) == "b") {
al.remove(i);
i--;
}
}
在代码中,删除元素后,需要把下标减一。这是因为在每次删除元素后,ArrayList会将后面部分的元素依次往上挪一个位置(就是copy),所以,下一轮培缺个需要访问的下标还是当前下标,所以腊辩必须得减一才能把所有元素都遍历完。
ArrayList al = new ArrayList();
al.add("a");
al.add("b");
//al.add("b");
//al.add("c");
//al.add("d");
for (int i = 0; i < al.size(); i++) {
if (al.get(i) == "b") {
al.remove(i);
i--;
}
}
在代码中,删除元素后,需要把下标减一。这是因为在每次删除元素后,ArrayList会将后面部分的元素依次往上挪一个位置(就是copy),所以,下一轮培缺个需要访问的下标还是当前下标,所以腊辩必须得减一才能把所有元素都遍历完。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询