Iterator及Enumeration

Enjoy_process發表於2018-10-13

Java提供一種方法訪問一個容器(Container)物件中的各個元素,而又不需要暴露物件的內部細節,這就是Iterator(迭代器)。所有的Collection元素都可以用Iterator迭代器來獲取元素,Vector等類還可以用Enumeration迭代器來列舉元素。與Enumeration相比,Iterator可以採用remove()方法刪除元素,而Enumeration沒有此功能。所以Iterator功能強大,使用起來也更方便。

Iterator類的常用方法如下

Iterator類的常用方法
方法宣告 方法功能
public boolean hasNext() 判斷是否還有下一個元素,若有返回true否則返回false
public Object next() 返回當前列表的下一個元素
public void remove() 刪除最近一次next方法或previous方法所返回的元素

注意:Iterator只能實現單向檢索

對於List類,可以通過它的listIterator()方法來取得其迭代器ListIterator。它具有雙向檢索的功能,而且除了Iterator具有的以上3個方法外,ListIterator類的其他常用方法如下

ListIterator類的其他常用方法
方法宣告 方法功能
public boolean hasPrevious() 判斷是否有前一個元素
public Object previous() 返回當前列表的上一個元素
public void add(Object obj) 在當前位置之前加入元素obj
pubic void set(Object obj) 將當前位置的元素替換為obj
public int nextIndex() 返回下一個元素的索引
pubic int previousIndex() 返回前一個元素的索引

對於Vector類,可以通過其elements()方法返回一個Enumeration介面,Enumeration介面的兩個主要方法如下

Enumeration介面的兩個主要方法
方法宣告 方法功能
public boolean hasMoreElement() 判斷是否還有元素,若有返回true,否則返回false
public Object nextElement() 返回下一個元素

 

相關文章