本帖最后由 黑马张健 于 2012-5-24 20:54 编辑
删不掉,是因为ArrayList集合,是一个有序集合,元素的角标会随着你的删除,自动往前。
比如一个集合 list["a","b","c","d","e"]
开始对应的元素下标分别是: 0 1 2 3 4
删除了其中一个c之后,下标,就开始改变了 list["a","b","d","e"]
0 1 2 3
list.add("java");
list.add("abc");
list.add("java");
list.add("bcd");
list.add("java");
list.add("java");
list["java","abc","java","bcd","java","java"]
0 1 2 3 4 5
for循环删除一个java后:集合变为
list["abc","java","bcd","java","java"]
0 1 2 3 4
当i++后成为1
这时把下标为1的元素取到,并删除后集合元素下标如下
list["abc","bcd","java","java"]
0 1 2 3
当i++后成为2
这时把下标为2的元素取到,并删除后集合元素下标如下
list["abc","bcd","java"]
0 1 2
当i++为3时,不满足for循环的条件。
所以打印abc、bcd、java
|