- import java.util.*;
- class Hello{
- public static ArrayList al;
- public static void main(String[] args) {
- al=new ArrayList();
- al.add("01");
- al.add("02");
- al.add("03");
- Iterator it=al.iterator();
- while(it.hasNext()){
- Object obj=(Object)it.next();//你的程序是从这里开始迭代的,这个时候,指针指向"01"元素
- if(obj.equals("01")){
- it.remove(); //根据判断条件,你将"01"元素移除,根据ArrayList的特性,后面元素往前移,这时,指针指向"02"元素,因为后面还有值,所以此时依然
- //满足循环条件,又执行了一次Object obj=(Object)it.next();指针指向"03"元素,不满足循环条件,退出.
- }
- System.out.println(it.next());这时候,在循环外面你还试图对"03"元素后面的元素进行访问,但实际上"03"后面已经没有元素了.所以报异常.
- }
一定要记得,只要出现了next()方法,就等于执行了一次指针后移动作,无论它出现在什么地方.
|