Skip to main content
 首页 » 编程设计

Java 迭代器模式

2022年07月19日33davidwang456

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


本文参考链接:https://www.cnblogs.com/hellokitty2/p/10722705.html