迭代器模式

1.迭代器模式

迭代器模式(Iterator Pattern)用于顺序访问集合对象的元素,不需要知道集合对象的底层表示,属于行为型模式。

把在元素之间游走的责任交给迭代器,而不是聚合对象。关键代码为定义迭代器的接口:hasNext, next。

 

2.试验Demo

复制代码
interface Iterator {
    public boolean hasNext();
    public Object next();
}

class NameIterator implements Iterator {
    private int index;
    private String array[];

    public NameIterator(String[] array) {
        this.array = array;
    }

    public boolean hasNext() {
        if (index < array.length) { //length是个成员变量,不加()
            return true;
        } else {
            return false;
        }
    }

    public Object next() {
        if(hasNext()) {
            return array[index++];
        } else {
            return null;
        }
    }
}


interface Container {
    public Iterator getIterator();
}


class NamePropersity implements Container {
    private String array[];

    public NamePropersity(String array[]) { //通过构造函数将Propersity和Iterator关联起来
        this.array = array;
    }

    public Iterator getIterator() {
        return new NameIterator(array);
    }
}


public class IteratorPatternDemo {
    public static void main(String args[]) {
        String names[] = {"AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH"};
        Container container = new NamePropersity(names);

        /*面向对象编程就不只是从参数传参了,可以直接是某个对象进行调用*/
        for (Iterator iterator = container.getIterator(); iterator.hasNext();) {
            System.out.println("name: " + iterator.next());
        }
    }
}
复制代码

 

 

参考:http://www.runoob.com/design-pattern/iterator-pattern.html

 

posted on   Hello-World3  阅读(114)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示