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 voidforEach(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 voidforEachRemaining(Consumer<? super E> action)
执行给定的每个剩余元素的动作,直到所有的元素都被处理或操作抛出异常。 
booleanhasNext()
返回 true如果迭代具有更多的元素。 
Enext()
返回迭代中的下一个元素。 
default voidremove()
从基础集合中移除这个迭代器返回的最后一个元素(可选操作)。

 

3、Spliterator(可分割迭代器)

 

转载于:https://www.cnblogs.com/lc4j/p/11108294.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值