Java-Collection源码分析(二)——Iterator和ListIterator

一、Iterator接口

Iterator接口是集合的迭代器,代替Java集合框架中的枚举,允许调用者在迭代期间从底层集合中删除元素,并具有明确定义的语义。

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());
    }
}

二、ListIterator接口

ListIterator接口除了事项Iterator提供的前向遍历的方法外,还提供了反向遍历的方法,老外的向前向后方向与我有偏差,害苦我了。

public interface ListIterator<E> extends Iterator<E> {
    boolean hasNext();
    E next();
    //如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true。 (换句话说,如果previous()将返回一个元素而不是抛出异常,则返回true。)
    boolean hasPrevious();
    //返回列表中的上一个元素,并向相反方向移动光标位置。 可以反复调用此方法来反向遍历列表,或者将来自next()的调用混合在一起来回移动。 (请注意,对next和previous的交替调用将重复返回相同的元素。)
    E previous();
    //返回后续调用next()返回的元素的索引。
    int nextIndex();
    //返回后续调用previous()返回的元素的索引。(如果列表迭代器位于列表的开头,则返回-1)
    int previousIndex();
    void remove();
    void set(E e);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值