如何从ArrayList的开头删除0

时间:2019-03-03 10:47:15

标签: java arraylist

我的Arraylist(样本)包含: 答:[0,6,0,6,0,4,8,8,2]

我想删除列表开头出现的所有0。 预期答案: 答:[6,0,6,4,8,8,2]

我正在尝试:

for(i=0; i<A.size(); i++){
    if(A.get(i) == 0)
        A.remove(i);
    else break;
}

我的输出: 答:[6、6、4、8、8、2]

我相信在执行A.remove()操作时索引会移动,因此当循环第二次运行时,第二个零的索引将变为1(以前为2),因此也将其删除。

我应该使用什么替代方法?

1 个答案:

答案 0 :(得分:1)

问题在于,从头开始删除某项的同时,您的i会增加。因此,在第二个循环中,您正在查看索引1,但是索引0现在具有一个您从未查看过的值。这对您来说很有用,因为开始时只有一个0,但是会失败,[0, 0, 6, 0]

相反,使用while并仅查看索引0

while (A.size() > 0 && A.get(0) == 0) {
    A.remove(0);
}