我们在使用List,Set的时候,为了实现对其数据的遍历,我们经常使用到了Iterator(跌代器)。使用跌代器,你不需要干涉其遍历的过程,只需要每次取出一个你想要的数据进行处理就可以了。
但是在使用的时候也是有不同的。List和Set都有iterator()来取得其迭代器。对List来说,你也可以通过listIterator()取得其迭代器,两种迭代器在有些时候是不能通用的,Iterator和ListIterator主要区别在以下方面:
1. ListIterator有add()方法,可以向List中添加对象,而Iterator不能。
2. ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator就不可以。
3. ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator没有此功能。
4. 都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iierator仅能遍历,不能修改。
因为ListIterator的这些功能,可以实现对LinkedList等List数据结构的操作。其实,数组对象也可以用迭代器来实现。
org.apache.commons.collections.iterators.ArrayIterator就可以实现此功能。一般情况下,我们使用Iterator就可以了,如果你需要进行记录的前后反复检索的话,你就可以使用ListIterator来扩展你的功能,(有点象JDBC中的滚动结果集)。
ListIterator 的方法:
Method Summary
void add(Object o)
Inserts the specified element into the list (optional operation).
boolean hasNext()
Returns true if this list iterator has more elements when traversing the list in the forward direction.
boolean hasPrevious()
Returns true if this list iterator has more elements when traversing the list in the reverse direction.
Object next()
Returns the next element in the list.
int nextIndex()
Returns the index of the element that would be returned by a subsequent call to next.
Object previous()
Returns the previous element in the list.
int previousIndex()
Returns the index of the element that would be returned by a subsequent call to previous.
void remove()
Removes from the list the last element that was returned by next or previous (optional operation).
void set(Object o)
Replaces the last element returned by next or previous with the specified element (optional operation).
分享到:
相关推荐
Java 中 Iterator 和 ListIterator 实例详解 Iterator 和 ListIterator 是 Java 中两个重要的迭代器接口,用于遍历集合中的元素。下面我们将详细介绍这两个接口的作用范围、关系、方法和使用实例。 Iterator 和 ...
java 1. 泛型 2. 队列 3. 栈 4. Iterator 和 ListIterator迭代器
在本文中,我们将详细介绍Java Iterator接口和ListIterator接口的定义、方法、实现和应用场景。 Iterator接口 Iterator接口是Java集合框架中的一个基本接口,用于迭代集合中的元素。它取代了Java集合框架中的...
JAVA中ListIterator和Iterator详解与辨析 ListIterator和Iterator是JAVA集合中两个重要的迭代器,都是用于遍历集合中的元素的。但是它们之间存在着一些关键的区别。 首先,Iterator迭代器包含的方法有:hasNext()...
除了`Iterator`的方法,`ListIterator`还提供了`hasPrevious()`、`previous()`、`nextIndex()`和`previousIndex()`等方法,支持双向遍历,并能方便地插入元素。 7. **总结** `Iterator`是Java集合框架的核心,使得...
要获取`List`的`ListIterator`实例,可以使用`list.listIterator()`或`list.iterator()`方法。例如: ```java List<String> list = new ArrayList(); ListIterator<String> iterator = list.listIterator(); ``` #...
Iterator接口和ListIterator接口的使用可以带来很多便利,例如,使用Iterator接口可以遍历集合中的元素,而不管集合的具体实现类型,同时也可以使用ListIterator接口来控制迭代器的行为,例如,添加或删除元素。...
在Java中,任何实现了Iterable接口的集合都可以通过调用`iterator()`方法来获取一个Iterator实例。例如,对于一个`ArrayList`列表`list`,你可以这样获取其迭代器: ```java Iterator<String> iterator = list....
4. 最后,我们使用 `ListIterator` 的 `hasPrevious()` 和 `previous()` 方法逆序遍历并输出列表中的元素: ```java for (; li.hasPrevious();) { System.out.print(li.previous() + " "); } ``` 在这个过程中,`...
一旦获得了`Iterator`实例,就可以使用`hasNext()`方法检查是否还有更多的元素可以遍历,使用`next()`方法获取下一个元素。通常情况下,会使用`while`循环来进行遍历: ```java while (it.hasNext()) { System.out....
对于需要双向遍历或在List中进行插入和删除操作的情况,Java提供了`ListIterator`接口,它是`Iterator`的子接口。`ListIterator`提供了`hasPrevious()`、`previous()`、`add()`和`set()`等额外的方法,增强了对List...
集合中添加元素?...而Iterator和ListIterator则是遍历集合的标准工具,它们的设计考虑了多线程环境下的安全性和遍历的顺序性。掌握这些知识点对于Java开发者来说,无论是面试还是实际开发,都是非常重要的。
Java 迭代器(Iterator)是Java集合框架的核心部分,它提供了一种高效且方便的方式来遍历和操作集合中的元素,而无需关心底层数据结构的实现细节。在Java中,迭代器是一个接口,位于`java.util`包下,主要用于遍历...
Java Iterator(迭代器)是Java集合框架中不可或缺的...总的来说,Java的`Iterator`和`ListIterator`接口为处理各种集合提供了灵活的遍历方式,允许程序高效地访问和操作集合中的元素,同时保持代码的简洁性和可读性。
方法的重载是指多个方法具有相同的方法名,但具有不同的参数列表,方法的重写是指子类重写父类的方法。 本文总结了 Java 面试题中的知识点,涵盖了 Java 的基础知识、集合框架、数据库访问、多线程、面向对象编程等...
在实际开发中,我们可以使用 ListIterator 或者其他方法来避免这个异常,例如使用 CopyOnWriteArrayList 替代 ArrayList,或者使用 synchronized 块来同步遍历和修改集合的操作。 ConcurrentModificationException ...
ArrayList 和 Vector 都是使用数组方式存储数据,Vector 由于使用了 synchronized 方法(线程安全),通常性能上较 ArrayList 差,LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是...
Iterator 和 ListIterator 都是 Java Collections 框架中的迭代器接口,但是它们在实现和应用场景上有所不同。Iterator 是 Java Collections 框架中的基本迭代器接口,提供了基本的迭代操作。ListIterator 是 List ...
使用Iterator可以遍历集合,使用 hasNext()方法判断是否还有元素,使用 next()方法获取下一个元素,使用 remove()方法删除当前元素。 Iterator有什么特点 Iterator有什么特点?Iterator提供了fail-fast机制, 避免...
5. 类与对象:深入理解类的定义、构造器、访问修饰符、方法重载和方法覆盖。 6. 继承与多态:掌握单一继承、接口、抽象类、多态性在代码设计中的应用。 二、Java集合框架 1. 集合接口:List、Set、Queue、Map接口...