设计模式学习—迭代器模式(Iterator Design Pattern)

本文介绍了迭代器模式的概念,包括其实现方式及应用场景。通过Java实例展示了如何定义迭代器接口及集合类接口,进而实现具体集合类的遍历操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、我的理解


迭代器模式是将集合的遍历方式独立出来,在顺序遍历时只需要使用迭代器即可,而不用去考虑底层集合存储的差异性。

二、实现方式


迭代器接口中定义遍历函数,然后由具体的集合类自己实现相应的遍历操作

三、实例




Java实例

Iterator接口:统一迭代器要进行的操作

package com.study.dp.iterator;

public interface Iterator {

    public boolean hasNext();
    public Object next();
    
}
Container接口:定义集合类的统一行为,获取迭代器

package com.study.dp.iterator;

public interface Container {

    public Iterator getIterator();
    
}
NameRepository类:实际的集合类,其内部定义了内部类NameIterator,而且为私有内部类,这样可以增加代码的封闭性,使得外部代码无法访问集合类的存储,否则的话则需要向外暴露接口由类从外部来访问集合实际数据

package com.study.dp.iterator;

public class NameRepository implements Container {

    public String[] names = {"Rober", "John", "Julie", "Lora"};
    
    @Override
    public Iterator getIterator() {
        return new NameIterator();
    }

    private class NameIterator implements Iterator{

        int index;
        
        @Override
        public boolean hasNext() {
            return index<names.length;
        }

        @Override
        public Object next() {
            if(this.hasNext()) {
                return names[index++];
            }
            return null;
        }
        
    }
    
}



四、应用场景


1.Java中集合类的迭代器


(基于jdk1.8版本)JDK中的Iterable接口相当于上文中的Container接口,而Iterator接口则相当于上文中的Iterator接口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值