美文网首页
Java设计模式--迭代器模式

Java设计模式--迭代器模式

作者: 留给时光吧 | 来源:发表于2018-05-09 21:40 被阅读0次

这是一种非常常见和实用的模式,主要用于顺序的访问某一集合的所有对象。将遍历对象的任务交给迭代器而不是直接操作对象本身。主要是要实现next和hasnext。还可以扩展出多种遍历方式。

简单实现:

迭代器接口:

public interface Iterator<T> {
    boolean hasNext();
    T next();
}

容器接口:

public interface Container {
    Iterator getIterator();
}

实际容器:

public class NameList implements Container{
    private String[] names = new String[]{"aaa","bbb","ccc","ddd"};

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

    private class NameIterator implements Iterator<String>{
        private int index;

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

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

测试类

    public static void main(String[] args) {
        Iterator iterator = new NameList().getIterator();
        while (iterator.hasNext())
            System.out.println(iterator.next());
    }

相关文章

网友评论

      本文标题:Java设计模式--迭代器模式

      本文链接:https://www.haomeiwen.com/subject/krzorftx.html