菜鸡重大发现:删除arraylist时,每删除一个元素后面的元素会自动填充
1 public static void main(String[] args) { 2 List<String> list = new ArrayList<String>(); 3 list.add("a"); 4 list.add("b"); 5 list.add("c"); 6 list.add("d"); 7 list.add("e"); 8 list.add("f"); 9 list.add("g"); 10 list.add("h"); 11 System.out.println(list.get(0)+","+list.size()); 12 13 for(int i=0;i<4;i++){ 14 list.remove(i); 15 } 16 for(int i=0;i<list.size();i++){ 17 System.out.println(list.get(i)); 18 } 19 20 }
结果为:
a,8
b
d
f
h
所以顺序删除最初插入的元素进行如下修改:
list.remove(i);
list.remove(0);
得到理想结果:
a,8
e
f
g
h
否则在进行大规模的arraylist处理时会发生越界错误:
Exception in thread "pool-2-thread-4" java.lang.IndexOutOfBoundsException: Index: 14, Size: 13