`
gybmike
  • 浏览: 181635 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Iterator和ListIterator的不同使用方法 (转)

    博客分类:
  • java
阅读更多
我们在使用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 1. 泛型 2. 队列 3. 栈 4. Iterator 和 ListIterator迭代器

    java中Iterator和ListIterator实例详解

    Java 中 Iterator 和 ListIterator 实例详解 Iterator 和 ListIterator 是 Java 中两个重要的迭代器接口,用于遍历集合中的元素。下面我们将详细介绍这两个接口的作用范围、关系、方法和使用实例。 Iterator 和 ...

    JAVA中ListIterator和Iterator详解与辨析(推荐)

    3、ListIterator和Iterator都有hasNext()和next()方法,可以实现顺序向后遍历,但是ListIterator有hasPrevious()和previous()方法,可以实现逆向(顺序向前)遍历。Iterator不可以。 4、ListIterator可以定位当前...

    java Iterator接口和LIstIterator接口分析

    在本文中,我们将详细介绍Java Iterator接口和ListIterator接口的定义、方法、实现和应用场景。 Iterator接口 Iterator接口是Java集合框架中的一个基本接口,用于迭代集合中的元素。它取代了Java集合框架中的...

    Iterator接口

    Iterator接口和ListIterator接口的使用可以带来很多便利,例如,使用Iterator接口可以遍历集合中的元素,而不管集合的具体实现类型,同时也可以使用ListIterator接口来控制迭代器的行为,例如,添加或删除元素。...

    java Iterator迭代器的使用

    除了`Iterator`的方法,`ListIterator`还提供了`hasPrevious()`、`previous()`、`nextIndex()`和`previousIndex()`等方法,支持双向遍历,并能方便地插入元素。 7. **总结** `Iterator`是Java集合框架的核心,使得...

    示例iterator使用及技巧

    一旦获得了`Iterator`实例,就可以使用`hasNext()`方法检查是否还有更多的元素可以遍历,使用`next()`方法获取下一个元素。通常情况下,会使用`while`循环来进行遍历: ```java while (it.hasNext()) { System.out....

    java使用ListIterator对List遍历时添加修改删除​

    要获取`List`的`ListIterator`实例,可以使用`list.listIterator()`或`list.iterator()`方法。例如: ```java List<String> list = new ArrayList(); ListIterator<String> iterator = list.listIterator(); ``` #...

    Iterator详解

    为了避免这种情况,可以使用`Collections.synchronizedList()`或`CopyOnWriteArrayList`等线程安全的集合类,或者在迭代时使用`Iterator`的`remove()`方法而不是集合的`remove()`方法。 8. **迭代器应用**: 迭代...

    Java集合面试题.docx

    集合中添加元素?...而Iterator和ListIterator则是遍历集合的标准工具,它们的设计考虑了多线程环境下的安全性和遍历的顺序性。掌握这些知识点对于Java开发者来说,无论是面试还是实际开发,都是非常重要的。

    Java学习之Iterator(迭代器)的一般用法

    以下是一个使用`ListIterator`的例子: ```java ListIterator<String> listIterator = list.listIterator(); while (listIterator.hasNext()) { String str = listIterator.next(); System.out.println(str); //...

    java使用listIterator逆序arraylist示例分享

    4. 最后,我们使用 `ListIterator` 的 `hasPrevious()` 和 `previous()` 方法逆序遍历并输出列表中的元素: ```java for (; li.hasPrevious();) { System.out.print(li.previous() + " "); } ``` 在这个过程中,`...

    Iterator.zip

    4. **使用迭代器**:在客户端代码中,我们可以通过调用`iterator()`方法获取迭代器,然后使用`hasNext()`和`next()`遍历聚合对象的所有元素。 5. **迭代器的应用场景**:迭代器广泛应用于各种算法和框架中,例如...

    Java集合容器面试题

    使用Iterator可以遍历集合,使用 hasNext()方法判断是否还有元素,使用 next()方法获取下一个元素,使用 remove()方法删除当前元素。 Iterator有什么特点 Iterator有什么特点?Iterator提供了fail-fast机制, 避免...

    JDKAPI18CN(中文版)

    The iterators returned by this class's个 iterator和listIterator方法是快速失败的 :如果列表在任何时间从结构上修改创建迭代器之后,以任何方式除非通过迭代器自身remove种或add方法,迭代器都将抛出一个...

    Java系列Iterator

    为了防止这种情况,建议在遍历集合时避免修改集合,或者使用`Iterator`的`remove()`方法进行删除。 - 要获取集合的迭代器,可以调用集合对象的`iterator()`方法。例如,对于ArrayList或HashSet,可以通过以下方式...

    仿std&&list;的iterator迭代器

    为了高效地遍历和操作这个容器中的元素,STL使用了迭代器(iterator)的概念。迭代器就像一个指针,但具有更高级的功能,能够适应不同的容器和算法。在本主题中,我们将深入探讨如何仿照`std::list`的迭代器进行实现...

    迭代器的使用 (2).docx

    通过调用`iterator()`方法,我们可以获取到一个`Iterator`实例,然后使用`hasNext()`和`next()`遍历列表。 值得注意的是,`Iterator`还有一个`remove()`方法,用于从原始集合中删除当前元素。但是,这个方法必须在...

    Java编程中ArrayList源码分析

    add方法用于添加元素到ArrayList中,remove方法用于删除ArrayList中的元素,get方法用于获取ArrayList中的元素,set方法用于设置ArrayList中的元素,iterator和listIterator方法用于遍历ArrayList中的元素。...

    AS 07 需求分析报告1

    1. **泛型(Generics)**:泛型是Java 5引入的一个重要特性,它允许在类、接口和方法中使用类型参数,从而提高代码的类型安全性和可读性。在这个任务中,需要将`CountryNode`转换为泛型`Node<T>`,`CountryList`转换...

Global site tag (gtag.js) - Google Analytics