Java8 Iterator接口源码阅读

/**
 * 一个在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());
    }
}




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值