新手 javaee中 关于迭代器的小疑点 感激不尽
新手求助 javaee中 关于迭代器的小问题 感激不尽。
代码如下:
import java.util.*;
class a{
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList al=new ArrayList();
al.add("li");
al.add("zhi");
al.add("yong");
Iterator a=al.iterator();
a.next();
a.remove();
System.out.println(a.next());
}
}
运行结果:zhi
为什么只显示一个zhi 可能问题很简单,希望能有人讲解清楚原因,感激不尽。
------解决方案--------------------
http://www.cnblogs.com/ethanchan/archive/2010/02/23/1672235.html
------解决方案--------------------
代码如下:
import java.util.*;
class a{
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList al=new ArrayList();
al.add("li");
al.add("zhi");
al.add("yong");
Iterator a=al.iterator();
a.next();
a.remove();
System.out.println(a.next());
}
}
运行结果:zhi
为什么只显示一个zhi 可能问题很简单,希望能有人讲解清楚原因,感激不尽。
------解决方案--------------------
http://www.cnblogs.com/ethanchan/archive/2010/02/23/1672235.html
------解决方案--------------------
- Java code
ArrayList al=new ArrayList(); al.add("li"); al.add("zhi"); al.add("yong"); Iterator a=al.iterator(); //当前元素指向第一个之前 a.next(); //当前元素是第一个,即"li" a.remove(); //"li"被移除,当前元素指向第一个之前 System.out.println(a.next()); //当前元素变为第一个,打印当前元素 System.out.println(Arrays.toString(al.toArray())); //打印列表的所有元素
------解决方案--------------------
你用两个
System.out.println(a.next())
会发现输出的是zhi yong
API中关于remove的说明是:
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。
也就是说
a.next();
a.remove();
只移除了li,实际上List集合里面还有两个元素。