Java學習之集合框架的叠代器--Iteratorjk及ListItertor接口
阿新 • • 發佈:2017-07-30
fault 之前 pre padding 指定 pan 存在 當前 iou
通常情況下,你會希望遍歷一個集合中的元素。例如,顯示集合中的每個元素。一般遍歷數組都是采用for循環或者增強for,這兩個方法也可以用在集合框架,但是還有一種方法是采用叠代器遍歷集合框架,它是一個對象,實現了Iterator 接口或ListIterator接口。叠代器,使你能夠通過循環來得到或刪除集合的元素。ListIterator 繼承了Iterator,以允許雙向遍歷列表和修改元素。Iterator和ListIterator都是泛型接口,它們的 聲明:
interface Iterator<E>
interface ListIterator<E>
default void forEachRemaining(Consumer<? super E> action) |
對於集合中每個未處理的元素,執行action指定的動作(JDK8新增) |
boolean hasNext() |
如果還有更多元素,就返回true,否則返回false |
E next() | 返回下一個元素。如果不存在下一個元素,就拋出NoSuchElementException異常 |
default void remove() | 移除當前元素。如果在調用next()方法之前試圖調用remove(),會拋出異常 |
方法 | 描述 |
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接口