当前位置: 代码迷 >> java >> 如何从ArrayList的开头删除0
  详细解决方案

如何从ArrayList的开头删除0

热度:73   发布时间:2023-07-25 19:55:21.0

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

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

我正在努力:

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

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

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

我应该使用什么替代品?

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

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

while (A.size() > 0 && A.get(0) == 0) {
    A.remove(0);
}
  相关解决方案