jdk1.8中集合源码之Iterable
Posted lc4j
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdk1.8中集合源码之Iterable相关的知识,希望对你有一定的参考价值。
一、集合类继承图
二、源码阅读前知识准备
default关键字:https://www.cnblogs.com/lc4j/p/11069172.html
λ表达式:https://blog.csdn.net/ioriogami/article/details/12782141/#commentsedit
三、源码
1、Iterable
public interface Iterable<T> Iterator<T> iterator();
default void forEach(Consumer<? super T> action) Objects.requireNonNull(action); for (T t : this) action.accept(t); default Spliterator<T> spliterator() return Spliterators.spliteratorUnknownSize(iterator(), 0);
Iterable有三个方法:
default void |
forEach(Consumer<? super T> action)
执行特定动作的每一个元素的
Iterable 直到所有元素都被处理或操作抛出异常。 |
Iterator<T> |
iterator()
返回类型
T 元素的迭代器。 |
default Spliterator<T> |
spliterator()
在这
Iterable 创建描述元素的 Spliterator 。 |
2、Iterator(迭代器)
public interface Iterator<E> boolean hasNext();
E next(); default void remove() throw new UnsupportedOperationException("remove"); default void forEachRemaining(Consumer<? super E> action) Objects.requireNonNull(action); while (hasNext()) action.accept(next());
default void |
forEachRemaining(Consumer<? super E> action)
执行给定的每个剩余元素的动作,直到所有的元素都被处理或操作抛出异常。
|
boolean |
hasNext()
返回
true 如果迭代具有更多的元素。 |
E |
next()
返回迭代中的下一个元素。
|
default void |
remove()
从基础集合中移除这个迭代器返回的最后一个元素(可选操作)。
|
3、Spliterator(可分割迭代器)
以上是关于jdk1.8中集合源码之Iterable的主要内容,如果未能解决你的问题,请参考以下文章