Java8 Iterator接口源码阅读
2015-04-19 19:16
351 查看
/**
* 一个在collection上的iterator。Iterator在Java集合框架中取代Enumeration。
* Iterator在两个方面和enumeration不同:
* 1. Iterator允许在迭代的过程总从collection中移除元素。
* 2. 方法命改善了
*
*这个接口是Java集合框架的成员
*/
public interface Iterator<E> {
/**
* 如果迭代器中有更大的元素,就返回true。(换句话说,如果next()方法
* 返回一个元素而不是抛出一个异常,就返回true)
*/
boolean hasNext();
/**
* 返回在迭代器中德下一个元素
*/
E next();
/**
* 从底层collection中删除被迭代器返回的下一个元素(可选的操作)。这个方法可能在每次
* 调用next()方法后调用一次。当迭代正在进行中,如果底层collection被除这个方法外
* 的其他方式更改,迭代器的行为是没有被指定的。
*
* 默认实现抛出UnsupportedOperationException的一个实例,不执行任何动作。
*/
default void remove() {
throw new UnsupportedOperationException("remove");
}
/**
* 对每一个留下的元素执行给定的动作指导所有元素都被处理了或者动作抛出一个异常。动作以迭代
* 的顺序被执行,如果迭代的顺序被指定了的话。被动作抛出的异常将传递给调用者。
*/
default void forEachRemaining(Consumer<? super E> action) {
// 验证action是否为null,如果为null,抛出NullPointerException
Objects.requireNonNull(action);
while (hasNext())
action.accept(next());
}
}
* 一个在collection上的iterator。Iterator在Java集合框架中取代Enumeration。
* Iterator在两个方面和enumeration不同:
* 1. Iterator允许在迭代的过程总从collection中移除元素。
* 2. 方法命改善了
*
*这个接口是Java集合框架的成员
*/
public interface Iterator<E> {
/**
* 如果迭代器中有更大的元素,就返回true。(换句话说,如果next()方法
* 返回一个元素而不是抛出一个异常,就返回true)
*/
boolean hasNext();
/**
* 返回在迭代器中德下一个元素
*/
E next();
/**
* 从底层collection中删除被迭代器返回的下一个元素(可选的操作)。这个方法可能在每次
* 调用next()方法后调用一次。当迭代正在进行中,如果底层collection被除这个方法外
* 的其他方式更改,迭代器的行为是没有被指定的。
*
* 默认实现抛出UnsupportedOperationException的一个实例,不执行任何动作。
*/
default void remove() {
throw new UnsupportedOperationException("remove");
}
/**
* 对每一个留下的元素执行给定的动作指导所有元素都被处理了或者动作抛出一个异常。动作以迭代
* 的顺序被执行,如果迭代的顺序被指定了的话。被动作抛出的异常将传递给调用者。
*/
default void forEachRemaining(Consumer<? super E> action) {
// 验证action是否为null,如果为null,抛出NullPointerException
Objects.requireNonNull(action);
while (hasNext())
action.accept(next());
}
}
相关文章推荐
- jdk源码阅读之 java.util.Iterator
- 源码分析-java-Iterator接口和Iterable<T>接口
- JDK源码阅读之Iterator迭代器接口
- java源码分析--Enumeration接口和Iterator接口
- Java集合(3)——ListIterator接口源码 & ListIterator接口与Iterator接口辨析
- Java8 Iterable接口源码阅读
- java源码阅读-集合接口
- 源码阅读—Iterator接口和LIstIterator接口
- Java源码阅读笔记-Integer
- 【Java】【Fulme】Flume-NG源码阅读之SpoolDirectorySource
- Java源码阅读之HashMap
- Java源码分析:深入探讨Iterator模式
- JDK 1.7 java.io 源码学习之AutoCloseable接口和try-with-resources语法
- Java终止线程实例和stop()方法源码阅读
- Java源码解析 Iterator<E>
- 黑马程序员:Java基础总结----接口 Collection<E>&iterator
- Java源码阅读之Hashset
- Java--Iterator接口和Iterable接口详解
- Java--Iterator接口和Iterable接口详解
- Thinking in Java之List接口、ArrayList类源码学习