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

2018-05-09  本文已影响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());
    }
上一篇 下一篇

猜你喜欢

热点阅读