Java for循环如何迭代到下面代码中的下一项

Java for循环如何迭代到下面代码中的下一项,java,Java,我试图学习Java中的迭代器设计模式。下面是迭代器模式实现的代码示例 public class IteratorDemo { /** * @param args the command line arguments */ public static void main(String[] args) { NameRepository repo=new NameRepository(); for(Iterator iter=repo

我试图学习Java中的迭代器设计模式。下面是迭代器模式实现的代码示例

public class IteratorDemo {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       NameRepository repo=new NameRepository();

       for(Iterator iter=repo.getIterarter(); iter.hasNext();){

           String name=(String) iter.next();

           System.out.println("Name : "+name);
       }


    }

}

interface Container{
    public Iterator getIterarter();
}

interface Iterator{
    public boolean hasNext();
    public Object next();
}



class NameRepository implements Container{
    private String[] names={"A","B","C","D","E","F"};

    @Override
    public Iterator getIterarter() {
        return new NameIterator();
    }

    private class NameIterator implements Iterator{

    int index;
    @Override
    public boolean hasNext() {
        return index < names.length;

    }

    @Override
    public Object next() {
        if(this.hasNext()){
            return names[index++];
        }
        return null;
    }

}
}
公共类迭代器demo{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
NameRepository repo=新的NameRepository();
for(迭代器iter=repo.getiterater();iter.hasNext();){
字符串名称=(字符串)iter.next();
System.out.println(“名称:”+Name);
}
}
}
接口容器{
公共迭代器getiterater();
}
接口迭代器{
公共布尔hasNext();
公共对象next();
}
类名存储库实现容器{
私有字符串[]名称={“A”、“B”、“C”、“D”、“E”、“F”};
@凌驾
公共迭代器getiterater(){
返回新名称迭代器();
}
私有类NameIterator实现了迭代器{
整数指数;
@凌驾
公共布尔hasNext(){
返回索引

这里的输出是A、B、C、D、E、F。我的问题是,for的
循环如何迭代到下一项?代码中似乎没有迭代值,但它仍然打印出整个数组

请参见,如果索引 **


**
iter.next()…iter.hasNext();){String name=(String)iter.next();下一个函数将返回当前项并在同一句话中推进索引
返回名称[index++]
(注意“++”运算符)
@Override
    public Object next() {
        if(this.hasNext()){
            return names[index++];
        }
        return null;
    }