关于foreach、Iterable、Iterator的一点理解
来源:互联网 发布:猫 益生菌 知乎 编辑:程序博客网 时间:2024/06/08 17:22
Iterator是一个迭代器接口,Iterable是一个与迭代器相关联的接口,接口里面定义了一个抽象方法iterator()。使用这个接口
的iterator方法可以返回一个迭代器实例。实现了Iterable的接口,可以使用foreach()进行遍历。在编译器会对foreach进行
优化,转换成迭代器的hasNext()和next()的调用。之所以,设计Iterable这个接口,而不是直接实现Iterator。主要是为了
迭代器之间不会相互干扰。若果设计成实现Iterator,由于它的核心方法都是依赖当前位置的,则该实现类都是要保存当前的
位置指针的。当集合在方法中进行传递时,他的位置是不可预知的。例如,当对某个list集合中,包含了10个元素。在一个
方法中,遍历前面若干元素。当我想要在另一个方法中,每次都重新开始遍历。这个时候就很难做到,除非每次都是重置reset
这个设计是非常不合理的。因此使用一个Iterable,每次都创建新的迭代器,之间不会相互干扰。
0 0
- 关于foreach、Iterable、Iterator的一点理解
- 关于ArrayList和Iterator的一点误用的理解
- Iterator和Iterable的 新理解--一个神奇的接口
- 关于foreach的一点疑问
- iterable内置的forEach方法
- Iterable和Iterator的区别
- Iterator与iterable的区别
- Iterator 和 Iterable 的区别
- Iterator 与 Iterable 的区别
- Iterable 和 Iterator 的区别
- Python的iterable与iterator
- python的iterator/iterable/generator
- Iterable和Iterator的辨析
- 实现foreach循环,通过iterable接口和iterator实例
- Iterator与Iterable之foreach循环输出自定义类
- C#中foreach的一点理解
- Iterator,Iterable
- 关于foreach和for的一点思考
- 分配个人任务的三种方式(引用地址有较全面的入门教程)
- 如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】
- 使用STM32定时器生成类光电编码器ABZ相脉冲
- ARM Cortex-M0系列笔记1-ARM简介
- Java技术——Java中的static关键字解析
- 关于foreach、Iterable、Iterator的一点理解
- cpp学习笔记(三)
- hadoop框架分析
- cuda7.5+cudnn5.1+opencv3.1(ubuntu14.04上安装caffe并测试)
- 第四周项目2-建设“单链表”算法库
- ROS Indigo的安装配置
- dom对象和jquery对象
- 第七周项目3负数把正数赶出队列
- sscanf 其实很强大