哥们今天删除元素的操作做出来一些毛病,实在不知道什么原因。请教大神,得出结论。希望大家能够总结经验,不要犯类似错误。
代码如下:
ArrayList<String> list = new ArrayList<>(); list.add("hello"); list.add("world"); list.add("java"); list.add("java"); list.add("java"); for (int i = list.size()-1; i >= 0; i--) { if("java".equals(list.get(i))){ list.remove(i); } } 当时我是非常不解,为什么删不干净呢。后来明白ArrayList来删除一个元素,角标就会往前走1;到最后删除只能删除一半,解决办法是从后往前删。改进版本: for (int i =0; i < list.size(); i++) { if("java".equals(list.get(i))){ list.remove(i); } }
|