设计模式-迭代器模式

发布于:2025-07-02 ⋅ 阅读:(22) ⋅ 点赞:(0)

1.用到的类

一个迭代器接口:里面可以定义next和hasNext方法。
一个迭代器实现类:实现迭代器方法,并定义一个index坐标和list集合
一个用于封装接口:里面有add和getIterator的方法
一个封装接口的实现类:实现这两个方法,以及定义Iterator和一个list集合

2.实现代码

迭代器接口

迭代器实现类

public class FruitIterator implements Iterator{
    private List<Object> fruitList;
    private int index = 0;

    public FruitIterator(List<Object> fruitList) {
        this.fruitList = fruitList;
    }
    @Override
    public boolean hasNext() {
        return index < fruitList.size();
    }

    @Override
    public Object next() {
        if(this.hasNext())
            return fruitList.get(index++);
        return null;
    }
}

使用类接口

public interface Aggregate {
    public Iterator getIterator();
    public void add(Object obj);
}

使用类实现

public class FruitAggregate implements Aggregate {
    List<Object> fruitList = new ArrayList<>();
    @Override
    public Iterator getIterator() {
        return new FruitIterator(fruitList);
    }

    @Override
    public void add(Object obj) {
        fruitList.add(obj);
    }
}

运行

@SpringBootApplication
public class IteratorApplication {
    public static void main(String[] args) {
        FruitAggregate fruitAggregate = new FruitAggregate();
        fruitAggregate.add("Apple");
        fruitAggregate.add("Banana");
        fruitAggregate.add("Orange");
        Iterator iterator = fruitAggregate.getIterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到