Java提供一种方法访问一个容器(Container)对象中的各个元素,而又不需要暴露对象的内部细节,这就是Iterator(迭代器)。所有的Collection元素都可以用Iterator迭代器来获取元素,Vector等类还可以用Enumeration迭代器来列举元素。与Enumeration相比,Iterator可以采用remove()方法删除元素,而Enumeration没有此功能。所以Iterator功能强大,使用起来也更方便。
Iterator类的常用方法如下
方法声明 | 方法功能 |
public boolean hasNext() | 判断是否还有下一个元素,若有返回true否则返回false |
public Object next() | 返回当前列表的下一个元素 |
public void remove() | 删除最近一次next方法或previous方法所返回的元素 |
注意:Iterator只能实现单向检索
对于List类,可以通过它的listIterator()方法来取得其迭代器ListIterator。它具有双向检索的功能,而且除了Iterator具有的以上3个方法外,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接口的两个主要方法如下
方法声明 | 方法功能 |
public boolean hasMoreElement() | 判断是否还有元素,若有返回true,否则返回false |
public Object nextElement() | 返回下一个元素 |