ArrayList<String> list = new ArrayList<>();
list.add(0,"tmt");
list.add(0,"pwo");
list.add(0,"pwo");
list.add(0,"pwo");
for (int i = 0; i < list.size(); i++) {
//System.out.println(list);
if (list.get(0).equals("pwo")){
list.remove(0);
}
System.out.println(list.indexOf("pwo"));
}
System.out.println(list);
嘿嘿所以问题来了,在大家不运行的情况下,看看他的输出是什么。
相信大家都已经看出来了了吧
然后我又想了一个思路,将list.get(0).equals("pwo")中的"0"改成"i"输出来的是什么呢?
想来大家看到这里已经是有了答案。不错还是不变,但是这里的内部输出其实是变了的。改为i了以后
list.add(0,"tmt");
list.add(0,"pwo");
list.add(0,"pwo");-->改成list.add(0,"pwd")
list.add(0,"pwo");
使用上一串代码修改之后便会发现问题,因为输出了pwd,跟第一个的删除顺序是不一样的。
好了我们再来整花活,比如把添加时候的下标限制全部改成不限制,也就是说让他们依次插入集合,那样又是一种新的变法,有兴趣的读者可以试试。