NutzCN Logo
问答 List remove的一个困惑
发布于 3113天前 作者 javanan 1872 次浏览 复制 上一个帖子 下一个帖子
标签:
	@Test
	public void test(){
		List<Integer> d=new ArrayList<Integer> ();
		d.add(1);
		d.add(2);
		d.add(3);
		d.add(4);
		d.add(5);
		d.add(6);
		for(Integer i :d){
			if(i==2){
				d.remove(i);
				continue;
			}
			System.out.println(i);
		}
	}
}

最后 只是输出 1
为什么 remove 一个对象后 后面的都被移除了呢?

5 回复

不是后面都被移除了,是为什么后边的不输出了呢

你确定你的代码能运行吗?

参考

        for (int i = 0; i < d.size(); i++) {
            if (d.get(i) == 2) {
                d.remove(d.get(i));
                i--;
                continue;
            }
            System.out.println(d.get(i));
        }
        for (int i = 0; i < d.size(); i++) {
            if (d.get(i) == 2) {
                d.remove(d.get(i));
                i--;
                continue;
            }
            System.out.println(d.get(i));
        }

2 被删了, 那么显然原来的 3 就变成 2 了,然后你 continue ...

List存Integer?自求多福吧 要知道get和remove都能传int
自豪地采用 NutzCN ionic

添加回复
请先登陆
回到顶部