迭代是指循环..迭代器是指实现该循环的一种方式......     我的疑惑就是 迭代器 是一个方法或者一个类么? 怎么只听不见啊?   如果不是的话 那么 iterator()方法又是什么东西啊? 他是干什么用的?
  

解决方案 »

  1.   

    Iterator是一个接口,实现了这个接口的类,都必须提供下面的三个方法 public boolean hasNext() {
    // TODO Auto-generated method stub
    return false;
    } public Object next() {
    // TODO Auto-generated method stub
    return null;
    } public void remove() {
    // TODO Auto-generated method stub

    }
      

  2.   


       那个 next()方法为什么会保留上一次读取的下标???  也就是说 上次我获取的是 第一个而 而第二次我就获取的是第二个?  这就是有关于迭代器的原理的一个展示么?
      

  3.   

    如果你要实现一个Iterator,那么你必须想办法来实现那三个方法.
    你可以参考java.util.Collection的代码.
      

  4.   

    Iterator是一个接口,用于对类集进行输出,一般我们不直接通过new的办法来实例化Iterator,通过类集提供的iterator()来实现Iterator的实例化~~
      

  5.   


     噢~ 对 这是接口 对~ 接口可以这么搞的.... 哎 学了C# 又学JAVA 有些东西搞的好混乱啊....
      

  6.   

    public Iterator<String> iterator(){
    return new Iterator<String>() {
    private int index=0;
    public boolean hasNext() {
    return index<words.length;//words代表数组或者集合
    }
    public String next() {
    return words[index++];
    }
    public void remove() {
    throw new UnsupportedOperationException();
    }
    };
    }
      

  7.   

    自定义的Collection接口public interface Collection { void add(Object o); int size(); Iterator iterator();}自定义的Iterator接口
    public interface Iterator { Object next(); boolean hasNext();}
    自定义的一个ArrayList容器
    楼主参照这个ArrayList的iterator()方法的实现public class ArrayList implements Collection { Object[] objects = new Object[10]; int index = 0; public void add(Object o) { if(index == objects.length) { Object[] newObjects = new Object[objects.length * 2]; System.arraycopy(objects, 0, newObjects, 0, objects.length); objects = newObjects; } objects[index] = o; index ++; } public int size() { return index; }
            //返回一个Iterator对象
    public Iterator iterator() { return new ArrayListIterator(); }
            //看这个类的实现
    private class ArrayListIterator implements Iterator { private int currentIndex = 0; @Override public boolean hasNext() { if(currentIndex >= index) return false; else return true; } @Override public Object next() { Object o = objects[currentIndex]; currentIndex ++; return o; } }}
      

  8.   

    迭代器的实现是一种设计模式,在java中只要会用Iterator这个接口就可以了。。
      

  9.   

    好像用Iterable也可以实现迭代吧??
      

  10.   

    实现了Iterator接口的类就可以具有迭代器性质(模式)。
      

  11.   

    public String next() {
        if(index != words.size)
           return words[index++];
        else
           throw new Exception("已经是最后一个元素");
    }
      

  12.   

    肤浅点解释,你就把迭代器看成一个指针就行了
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    public class TTT { /**
     * @param args
     */
    public static void main(String[] args) {
    List list = new ArrayList();
    list.add(111);
    list.add(222);
    Iterator iterator = list.iterator();//初始化"指针",并将"指针"指向list的第一个元素.
    while(iterator.hasNext()){//判断"指针"是否可以指向下一个元素.
       //如果下一个元素不是最后一个元素,返回true.
      //如果下一个元素为最后一个元素,返回false;

    System.out.println(iterator.next());//拿出当前元素,并将"指针"指向下一个元素
    }
    /*
     *当然这种解释方法是错误的,因为Java里根本没有"指针".
     *但是这么解释比较形象,而且实际操作也是这样的.
    */
    }}
      

  13.   

    有点笔误,这里应该这么写while(iterator.hasNext()){//判断"指针"是否可以指向下一个元素.
       //如果有下一个元素,返回true.循环继续
      //如果没有下一个元素,返回false,退出循环