1. 程式人生 > >Java學習之集合框架的叠代器--Iteratorjk及ListItertor接口

Java學習之集合框架的叠代器--Iteratorjk及ListItertor接口

fault 之前 pre padding 指定 pan 存在 當前 iou

  通常情況下,你會希望遍歷一個集合中的元素。例如,顯示集合中的每個元素。一般遍歷數組都是采用for循環或者增強for,這兩個方法也可以用在集合框架,但是還有一種方法是采用叠代器遍歷集合框架,它是一個對象,實現了Iterator 接口或ListIterator接口。叠代器,使你能夠通過循環來得到或刪除集合的元素。ListIterator 繼承了Iterator,以允許雙向遍歷列表和修改元素。Iterator和ListIterator都是泛型接口,它們的 聲明:

  interface Iterator<E>

  interface ListIterator<E>

Iterator接口聲明的方法
default void forEachRemaining(Consumer<? super E> action)

對於集合中每個未處理的元素,執行action指定的動作(JDK8新增)

boolean hasNext()

如果還有更多元素,就返回true,否則返回false

E next() 返回下一個元素。如果不存在下一個元素,就拋出NoSuchElementException異常
default void remove() 移除當前元素。如果在調用next()方法之前試圖調用remove(),會拋出異常

ListIterator接口聲明的方法
方法 描述
void add(E obj) 將obj插入到列表中,新插入的元素位於下一次next()方法調用返回的元素之前
boolean hasNext() 如果存在下一個元素就返回true,否則就返回false
boolean hasPrevious() 如果存在前一個元素,就返回true,否則返回false
E next() 返回下一個元素。如果不存在下一個元素,就拋出NoSuchElementException異常
int nextIndex() 返回下一個元素的索引。如果不存在下一個元素,就返回列表的大小
E previous() 返回前一個元素。如果不存在前一個元素,就拋出NoSuchElementException異常
int previousIndex() 返回前一個元素的索引。如果不存在前一個元素,就返回 -1
void remove() 從列表中移除當前元素。如果在調用next()或previous()方法之前調用remove()方法,就會拋出IllegalStateException 異常
void set(E obj) 將obj的值賦給當前元素,也就是next()或previous()方法調用最後返回的元素

只有實現List接口的集合才能使用 ListIterator。

Java學習之集合框架的叠代器--Iteratorjk及ListItertor接口