Java 设计模式系列(十五)迭代器模式(Iterator)

Java 设计模式系列(十五)迭代器模式(Iterator)

迭代器模式又叫游标(Cursor)模式,是对象的行为模式。迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表象(internal representation)。

一、实现自己的迭代器

public class MyArrayList<T> implements Iterable<T> {

    private Object[] elements = {"java", "python", "python"};
    private int size = elements.length;

    public Iterator iterator() {
        return new Itr();
    }

    private class Itr implements Iterator<T> {
        private int cursor = 0;

        @Override
        public boolean hasNext() {
            return cursor < size;
        }

        @Override
        public T next() {
            return (T) elements[cursor++];
        }
    }

    public static void main(String[] args) {
        MyArrayList<String> list = new MyArrayList();
        for (Iterator it = list.iterator(); it.hasNext();) {
            System.out.println(it.next());
        }

        // 必须实现 Iterable 接口
        for (Object str : list) {
            System.out.println(str);
        }
    }
}

每天用心记录一点点。内容也许不重要,但习惯很重要!

posted on 2018-05-09 21:33  binarylei  阅读(126)  评论(0编辑  收藏  举报

导航