前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >迭代器模式

迭代器模式

作者头像
晚上没宵夜
发布2022-12-02 16:38:38
2840
发布2022-12-02 16:38:38
举报

忽然看到迭代器模式,在集合中能经常遇到

1.迭代器模式(Iterator Pattern)

使用者不需要知道对象内部结构,便可遍历对象内部的元素

迭代器模式的组成:

  • Iterator:迭代器接口
  • Container:迭代器容器接口
  • ContainerConcrete:容器实现类

2.流程

2.1 Iterator

代码语言:javascript
复制
public interface Iterator<E> {
    boolean hasNext();
    E next();
}

2.2 Container

代码语言:javascript
复制
public interface Container<E> {
    Iterator<E> iterator();
}

2.3 ContainerConcrete

代码语言:javascript
复制
public class ContainerConcrete<E> implements Container {

    // 存放的元素
    public String[] elements = {"A", "B", "C", "D"};

    @Override
    public Iterator iterator() {
        return new IteratorConcrete();
    }

    private class IteratorConcrete<E> implements Iterator {

        int index;

        @Override
        public boolean hasNext() {
            if (index < elements.length) {
                return true;
            }
            return false;
        }

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

2.4 测试

代码语言:javascript
复制
public class Test {

    public static void main(String[] args) {
        ContainerConcrete containerConcrete = new ContainerConcrete();
        Iterator iterator = containerConcrete.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.迭代器模式(Iterator Pattern)
  • 2.流程
    • 2.1 Iterator
      • 2.2 Container
        • 2.3 ContainerConcrete
          • 2.4 测试
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档