源码分析-java-Iterator接口和Iterable<T>接口
2016-07-16 14:46
447 查看
Iterator接口
API文档
首先Iterator的出现是为了替代Enumeration.它和Enumeration不同的是,它可以删除迭代的内容。并且被更好的命名
这个接口只有四个方法:
boolean hasNext()
E next()
default void remove()
default void forEachRemaining(Consumer
源码分析
default void forEachRemaining(Consumer<? super E> action) { Objects.requireNonNull(action); while (hasNext()) action.accept(next()); }
只有这一个方法给出了默认的实现。
简单的说就是判断下是否是Null。然后让动作接受每一个next。
当然因为remove是可选操作这里抛出了一个默认的异常。
Iterable
API文档:
这个类不同于上面的类,这个类只是为了让对象实现for-each loop声明而存在的。这个类只有三个方法:
Iterator<T> iterator() default Spliterator<T> spliterator() default void forEach(Consumer<? super T> action)
第一个没什么好说的,生成迭代器。否则无法实现for-each
后两个是1.8版本之后更新的新方法。
foreach 提供另一个操作,对可迭代的元素的每一项运行一次。
前一个暂时还没看懂具体做什么的。
相关文章推荐
- C#生成Word文档代码示例
- 如何使用C#从word文档中提取图片
- jQuery窗口、文档、网页各种高度的精确理解
- 浅析iterator与指针的区别
- 比较全的一个C#操作word文档示例
- 浅谈javascript 迭代方法
- js数组的五种迭代方法及两种归并方法(推荐)
- 用JavaScript获取页面文档内容的实现代码
- C#编程实现Excel文档中搜索文本内容的方法及思路
- java使用iterator遍历指定目录示例分享
- Java设计模式之Iterator模式介绍
- java集合迭代器Iterator中的remove陷阱
- php可应用于面包屑导航的迭代寻找家谱树实现方法
- PHP5.5迭代生成器用法实例详解
- php文档工具PHP Documentor安装与使用方法
- JavaScript数组迭代器实例分析
- 举例讲解如何在Python编程中进行迭代和遍历
- MongoDB快速入门笔记(六)之MongoDB删除文档操作
- MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码
- MongoDB快速入门笔记(三)之MongoDB插入文档操作