代码如下:
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 可能问题很简单,希望能有人讲解清楚原因,感激不尽。

解决方案 »

  1.   


    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;class a {
    public static void main(String[] args) {
    List<String> al = new ArrayList<String>();
    al.add("li");
    al.add("zhi");
    al.add("yong");
    Iterator<String> a = al.iterator();
    //需要迭代输出的
    while(a.hasNext()){
    System.out.println(a.next());
    }
    }
    }
      

  2.   

    照你这样写的话只能是一个,因为你只取了一次啊,要写一个循环来把Iterator里的内容取完。
    Iterator a=al.iterator();
    a.next();建议看一下迭代器模式。
      

  3.   

    我的意思是用了remove()方法后,“li”和“yong”都没了。remove()方法是怎么工作的。
      

  4.   

    http://www.cnblogs.com/ethanchan/archive/2010/02/23/1672235.html
      

  5.   

    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())); //打印列表的所有元素
      

  6.   

    你用两个
    System.out.println(a.next())
    会发现输出的是zhi yong
    API中关于remove的说明是:
    从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。
    也就是说
    a.next();
    a.remove();
    只移除了li,实际上List集合里面还有两个元素。
      

  7.   

    只移除了li,实际上List集合里面还有两个元素。 因为你只输出了一次 所以这里只有一个 zhi  其实还有一个yong在集合里面