迭代器模式

作者: 我是光芒万丈 | 来源:发表于2020-03-01 14:29 被阅读0次

在不暴露内部细节的情况下,可以访问容器内部。我们常用的Collection集合就是用了迭代器模式.

iterator中保存这个遍历的坐标postion,next 就返回下一个值,hasNext则判断是否有下一个对象存在

类图如下:

具体实现如下:

List接口

public interface List<T> {

    Iterator<T> iterator();

    void add(T t);

}

iterator接口

public interface Iterator<T> {

    T next();

    boolean hasNext();

}

ConcreateList类

public class ConcreateList<T> implements List {

    Object [] array = new Object[3];

    int cursor;

    @Override

    public Iterator iterator() {

        return new ConcreateIterator();

    }

    @Override

    public void add(Object o) {

        array[cursor++] = o;

    }

    class ConcreateIterator implements Iterator{

        int index;

        @Override

        public Object next() {

            return array[index++];

        }

        @Override

        public boolean hasNext() {

            return index < array.length;

        }

    }

    public static void main(String[] args) {

        List<Integer> list = new ConcreateList<>();

        list.add(1);

        list.add(2);

        list.add(3);

        Iterator<Integer> iterator = list.iterator();

        while (iterator.hasNext()){

            System.out.println(iterator.next());

        }

    }

}

相关文章

网友评论

    本文标题:迭代器模式

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