我们在使用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中的滚动结果集)。
引用:http://blog.csdn.net/chensheng913/article/details/564320
分享到:
相关推荐
java 1. 泛型 2. 队列 3. 栈 4. Iterator 和 ListIterator迭代器
Java 中 Iterator 和 ListIterator 实例详解 Iterator 和 ListIterator 是 Java 中两个重要的迭代器接口,用于遍历集合中的元素。下面我们将详细介绍这两个接口的作用范围、关系、方法和使用实例。 Iterator 和 ...
3、ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator不可以。 4、ListIterator可以定位当前...
在本文中,我们将详细介绍Java Iterator接口和ListIterator接口的定义、方法、实现和应用场景。 Iterator接口 Iterator接口是Java集合框架中的一个基本接口,用于迭代集合中的元素。它取代了Java集合框架中的...
Iterator接口和ListIterator接口的使用可以带来很多便利,例如,使用Iterator接口可以遍历集合中的元素,而不管集合的具体实现类型,同时也可以使用ListIterator接口来控制迭代器的行为,例如,添加或删除元素。...
除了`Iterator`的方法,`ListIterator`还提供了`hasPrevious()`、`previous()`、`nextIndex()`和`previousIndex()`等方法,支持双向遍历,并能方便地插入元素。 7. **总结** `Iterator`是Java集合框架的核心,使得...
一旦获得了`Iterator`实例,就可以使用`hasNext()`方法检查是否还有更多的元素可以遍历,使用`next()`方法获取下一个元素。通常情况下,会使用`while`循环来进行遍历: ```java while (it.hasNext()) { System.out....
要获取`List`的`ListIterator`实例,可以使用`list.listIterator()`或`list.iterator()`方法。例如: ```java List<String> list = new ArrayList(); ListIterator<String> iterator = list.listIterator(); ``` #...
为了避免这种情况,可以使用`Collections.synchronizedList()`或`CopyOnWriteArrayList`等线程安全的集合类,或者在迭代时使用`Iterator`的`remove()`方法而不是集合的`remove()`方法。 8. **迭代器应用**: 迭代...
集合中添加元素?...而Iterator和ListIterator则是遍历集合的标准工具,它们的设计考虑了多线程环境下的安全性和遍历的顺序性。掌握这些知识点对于Java开发者来说,无论是面试还是实际开发,都是非常重要的。
以下是一个使用`ListIterator`的例子: ```java ListIterator<String> listIterator = list.listIterator(); while (listIterator.hasNext()) { String str = listIterator.next(); System.out.println(str); //...
4. 最后,我们使用 `ListIterator` 的 `hasPrevious()` 和 `previous()` 方法逆序遍历并输出列表中的元素: ```java for (; li.hasPrevious();) { System.out.print(li.previous() + " "); } ``` 在这个过程中,`...
4. **使用迭代器**:在客户端代码中,我们可以通过调用`iterator()`方法获取迭代器,然后使用`hasNext()`和`next()`遍历聚合对象的所有元素。 5. **迭代器的应用场景**:迭代器广泛应用于各种算法和框架中,例如...
使用Iterator可以遍历集合,使用 hasNext()方法判断是否还有元素,使用 next()方法获取下一个元素,使用 remove()方法删除当前元素。 Iterator有什么特点 Iterator有什么特点?Iterator提供了fail-fast机制, 避免...
The iterators returned by this class's个 iterator和listIterator方法是快速失败的 :如果列表在任何时间从结构上修改创建迭代器之后,以任何方式除非通过迭代器自身remove种或add方法,迭代器都将抛出一个...
为了防止这种情况,建议在遍历集合时避免修改集合,或者使用`Iterator`的`remove()`方法进行删除。 - 要获取集合的迭代器,可以调用集合对象的`iterator()`方法。例如,对于ArrayList或HashSet,可以通过以下方式...
为了高效地遍历和操作这个容器中的元素,STL使用了迭代器(iterator)的概念。迭代器就像一个指针,但具有更高级的功能,能够适应不同的容器和算法。在本主题中,我们将深入探讨如何仿照`std::list`的迭代器进行实现...
通过调用`iterator()`方法,我们可以获取到一个`Iterator`实例,然后使用`hasNext()`和`next()`遍历列表。 值得注意的是,`Iterator`还有一个`remove()`方法,用于从原始集合中删除当前元素。但是,这个方法必须在...
add方法用于添加元素到ArrayList中,remove方法用于删除ArrayList中的元素,get方法用于获取ArrayList中的元素,set方法用于设置ArrayList中的元素,iterator和listIterator方法用于遍历ArrayList中的元素。...
1. **泛型(Generics)**:泛型是Java 5引入的一个重要特性,它允许在类、接口和方法中使用类型参数,从而提高代码的类型安全性和可读性。在这个任务中,需要将`CountryNode`转换为泛型`Node<T>`,`CountryList`转换...