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


發佈了25 篇原創文章 · 獲贊 3 · 訪問量 5926
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章