`

java 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中的滚动结果集)。

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).
分享到:
评论
1 楼 蜀山红日 2012-11-01  

相关推荐

    java中Iterator和ListIterator实例详解

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

    java 1. 泛型 2. 队列 3. 栈 4. Iterator 和 ListIterator迭代器

    java 1. 泛型 2. 队列 3. 栈 4. Iterator 和 ListIterator迭代器

    java Iterator接口和LIstIterator接口分析

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

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

    JAVA中ListIterator和Iterator详解与辨析 ListIterator和Iterator是JAVA集合中两个重要的迭代器,都是用于遍历集合中的元素的。但是它们之间存在着一些关键的区别。 首先,Iterator迭代器包含的方法有:hasNext()...

    java Iterator迭代器的使用

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

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

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

    Iterator接口

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

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

    在Java中,任何实现了Iterable接口的集合都可以通过调用`iterator()`方法来获取一个Iterator实例。例如,对于一个`ArrayList`列表`list`,你可以这样获取其迭代器: ```java Iterator<String> iterator = list....

    java使用listIterator逆序arraylist示例分享

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

    示例iterator使用及技巧

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

    Iterator详解

    对于需要双向遍历或在List中进行插入和删除操作的情况,Java提供了`ListIterator`接口,它是`Iterator`的子接口。`ListIterator`提供了`hasPrevious()`、`previous()`、`add()`和`set()`等额外的方法,增强了对List...

    Java集合面试题.docx

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

    Java系列Iterator

    Java 迭代器(Iterator)是Java集合框架的核心部分,它提供了一种高效且方便的方式来遍历和操作集合中的元素,而无需关心底层数据结构的实现细节。在Java中,迭代器是一个接口,位于`java.util`包下,主要用于遍历...

    Java Iterator(迭代器)

    Java Iterator(迭代器)是Java集合框架中不可或缺的...总的来说,Java的`Iterator`和`ListIterator`接口为处理各种集合提供了灵活的遍历方式,允许程序高效地访问和操作集合中的元素,同时保持代码的简洁性和可读性。

    java简答题

    方法的重载是指多个方法具有相同的方法名,但具有不同的参数列表,方法的重写是指子类重写父类的方法。 本文总结了 Java 面试题中的知识点,涵盖了 Java 的基础知识、集合框架、数据库访问、多线程、面向对象编程等...

    java.util.ConcurrentModificationException 异常问题详解1

    在实际开发中,我们可以使用 ListIterator 或者其他方法来避免这个异常,例如使用 CopyOnWriteArrayList 替代 ArrayList,或者使用 synchronized 块来同步遍历和修改集合的操作。 ConcurrentModificationException ...

    java集合类面试题总结

    ArrayList 和 Vector 都是使用数组方式存储数据,Vector 由于使用了 synchronized 方法(线程安全),通常性能上较 ArrayList 差,LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是...

    Java Collections Interview Questions.pdf

    Iterator 和 ListIterator 都是 Java Collections 框架中的迭代器接口,但是它们在实现和应用场景上有所不同。Iterator 是 Java Collections 框架中的基本迭代器接口,提供了基本的迭代操作。ListIterator 是 List ...

    Java集合容器面试题

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

    最终JAVA面试题目汇总 Java面试题集锦 Java面试题大全 java面试100题目.pdf

    5. 类与对象:深入理解类的定义、构造器、访问修饰符、方法重载和方法覆盖。 6. 继承与多态:掌握单一继承、接口、抽象类、多态性在代码设计中的应用。 二、Java集合框架 1. 集合接口:List、Set、Queue、Map接口...

Global site tag (gtag.js) - Google Analytics