Java 集合系列(2): Iterator迭代器

package java.util;

import java.util.function.Consumer;

/**
 * @param <E> the type of elements returned by this iterator
 *
 * @author  Josh Bloch
 * @see Collection
 * @see ListIterator
 * @see Iterable
 * @since 1.2
 */
public interface Iterator<E> {
    
	//即判断还有没有下一个元素
    boolean hasNext();

    //返回下一个在迭代器里面的元素,没有就抛NoSuchElementException异常
    E next();

    //默认从集合中删除最后一个元素,默认实现抛出一个UnsupportedOperationException异常,message信息为remove
    default void remove() {
        throw new UnsupportedOperationException("remove");
    }

    //JDK8新加的方法
    //为每个剩余元素执行给定的操作,直到所有的元素都已经被处理或行动将抛出一个异常。
    //通过反复调用next方法,就可以对集合完成访问操作。但是如果到达集合末尾,next方法将会抛出一个NoSuchElementException。
    //因此,需要在调用next方法之前,调用hasNext方法做判断。如果迭代器对象还有多个可供访问的元素,则这个方法返回true。
    default void forEachRemaining(Consumer<? super E> action) {
        Objects.requireNonNull(action);
        while (hasNext())
            action.accept(next());
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值