迭代器 Iterator
2016-05-08 07:44
169 查看
迭代器 Iterator
2016-5-7可以这样说,迭代器统一了对容器的访问方式。
考虑这样的情景:原本是对着List编码,但是后来发现需要把相同的代码用于Set。我们需要一种不关心容器类型
而能够通用的容器访问方法。
Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。
迭代器是一个对象,它的工作是遍历并选中序列中的对象,而客户端程序员不必知道或关心该序列底层的结构。
能将遍历序列的操作与序列底层的机构分离。
而且,创建迭代器的代价很小。
List<Integer> list = new LinkedList<>(); for (int i = 1; i < 6; i++) { list.add(i); } Iterator iterator = list.iterator(); System.out.println("iterator 本身: " + iterator); System.out.println(iterator.next()); while (iterator.hasNext()) { System.out.print(iterator.next() + " "); }
输出:
iterator 本身: java.util.LinkedList$ListItr@1540e19d 1 2 3 4 5
相关文章推荐
- VIMSCRIPT学习
- 【华为OJ】【028-图片整理】
- 注解校验说明及注解使用场景
- 【华为OJ】【027-字符串运用-密码截取】
- 【华为OJ】【026-字符串加密】
- bzoj 2241: [SDOI2011]打地鼠(暴搜+减枝)
- 游子吟
- 母亲
- centos7 apache 虚拟目录 You don't have permission to access / on this server 解决方法
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- SSH框架总结(框架分析+环境搭建+实例源码下载)
- 官方博客明确了 .NET Core RC2/RTM 时间表
- 菜刀ASP 上传文件反应
- Android AIDL自动生成Java文件测试
- 16.17 编程练习
- [BTS] Exception occurred when persisting state to the database
- Android Studio问题汇总
- C++类的静态成员& 赋值vs初始化
- 基于jquery实现最简单的选项卡切换效果
- 【BZOJ3932】任务查询系统,主席树与差分的建树思想