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

迭代器模式

作者头像
提莫队长
发布2019-02-21 11:38:40
5160
发布2019-02-21 11:38:40
举报
文章被收录于专栏:刘晓杰

1.定义

提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示。

2.实现(遍历工程员工)

代码语言:javascript
复制
public class Employee {
    public String name;
    public int age;

    public Employee(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Employee [name=" + name + ", age=" + age + "]";
    }
}

/**
 * 迭代器接口
 */
public interface Iterator {
    boolean hasNext();
    Object next();
}

/**
 * 遍历员工的迭代器
 */
public class EmployeeIterator implements Iterator {
    private ArrayList<Employee> list;
    private int position = 0;

    public EmployeeIterator(ArrayList<Employee> list) {
        this.list = list;
    }

    @Override
    public boolean hasNext() {
        return position + 1 > list.size() ? false : true;
    }

    @Override
    public Object next() {
        return list.get(position++);
    }

}

/**
 * 要遍历的数据
 */
class Data{
    private ArrayList<Employee> employees = new ArrayList<Employee>();

    public Data() {
        employees.add(new Employee("1111", 12));
        employees.add(new Employee("2222", 123));
        employees.add(new Employee("3333", 127));
    }

    public Iterator iterator(){
        return new EmployeeIterator(employees);
    }
}

测试代码
        Data data = new Data();
        Iterator iterator = data.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }

3.总结

迭代器模式发展至今,几乎所有的高级语言都有相应的内置实现,对于开发者而言,已经极少会自己去实现迭代器了,所以本章内容更多的是了解而非应用。 1.优点 (1)符合面向对象设计原则中的单一职责原则。 (2)支持对容器对象的多种遍历。弱化了容器类与遍历算法之间的关系。 2.缺点 (1)类文件的增加。 (3)会出现ConcurrentModificationException异常。 (2)遍历过程是一个单向且不可逆的遍历。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年03月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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