一 ListIterator迭代器的概述
ListIterator与Iterator接口不同,它不仅可以向后迭代,它还可以向前迭代。
ListIterator相对Iterator增加了如下3个方法:
boolean hasPrevious():返回该迭代器关联的集合是否还有上一个元素。
Object previous():返回该迭代器的上一个元素。
void add():在指定位置插入一个元素。
二 ListIterator迭代器的应用
1 代码示例
import java.util.*; public class ListIteratorTest { public static void main(String[] args) { String[] books = { "十万个为什么", "photoshop完全自学教程", "教你如何炒股" }; List bookList = new ArrayList(); for (int i = 0; i < books.length ; i++ ) { bookList.add(books[i]); } ListIterator lit = bookList.listIterator(); while (lit.hasNext()) { System.out.println(lit.next()); lit.add("++++++++++分隔符++++++++++"); } System.out.println("=======下面开始反向迭代======="); while(lit.hasPrevious()) { System.out.println(lit.previous()); } } }
2 运行结果
十万个为什么
photoshop完全自学教程
教你如何炒股
=======下面开始反向迭代=======
++++++++++分隔符++++++++++
教你如何炒股
++++++++++分隔符++++++++++
photoshop完全自学教程
++++++++++分隔符++++++++++
十万个为什么
3 代码说明
该代码先通过hasNext正向迭代集合,然后使用hasPrevious反向迭代集合,其中还用到add方法向集合中添加元素。
相关推荐
Listiterator迭代器的方向遍历,在反向遍历时 源码中 index中的初值需要在定义的时候传入size集合长度 或者通过正向遍历,将nextIndex的值变为集合的长度 然后public boolean hasPrevious() { return nextIndex > 0...
`std::list`的迭代器是双向迭代器,因为可以在链表中前后移动。双向迭代器支持`++it`(前移)和`--it`(后移)操作,以及`it++`和`it--`的增量和减量运算符。 仿制`std::list`的迭代器,我们需要定义一个类,包含...
除了基本的迭代器,Java集合框架还提供了不同类型的迭代器,例如ListIterator,它专为列表设计,支持双向迭代和位置操作。ListIterator有`hasPrevious()`、`previous()`等方法,可以向前或向后遍历列表。 此外,...
在Java编程中,`ListIterator`是`List`接口提供的一种特殊的迭代器,它具有双向遍历的能力,不仅可以向前遍历列表,还可以向后遍历。`ListIterator`还提供了在遍历过程中添加、修改和删除元素的功能,使得对列表的...
通过使用 listIterator() 方法可以获取 List 集合的迭代器,然后使用 hasNext() 方法检查是否还有下一个元素,如果有,则使用 next() 方法获取该元素,并使用 equals() 方法检查是否等于"abc",如果等于,则使用 ...
在Java编程语言中,集合框架是处理对象数组的核心部分,而迭代器设计模式则是访问集合元素的主要机制。本文将深入探讨Java中的迭代器模式及其在集合框架中的应用。 迭代器模式是一种行为设计模式,它提供了一种方法...
对于`List`这样的有序集合,Java还提供了更强大的`ListIterator`接口。与普通的`Iterator`相比,`ListIterator`支持双向遍历,即不仅可以向前迭代,也可以向后迭代。此外,`ListIterator`还提供了额外的方法,如`add...
@Validated验证List集合的方法示例 在实际开发中,我们经常会遇到需要验证List集合的场景,而@Validated注解只能验证单个实体类,无法直接验证List集合。那么,如何实现List集合的验证呢?下面我们将通过示例代码,...
ListIterator 是一个特殊的迭代器接口,专门用于遍历 List 类型的集合。 从源码或 API 文档中可以看出,Iterator 是 ListIterator 的父类,ListIterator 扩展了 Iterator 的功能。 迭代器隐式游标位置实例分析 在...
在编程领域,集合是数据组织的基本形式之一,而List接口是Java中集合框架的重要组成部分。List接口继承自Collection,它代表一个有序的元素序列,允许重复元素,并且提供了索引访问。本文将深入探讨List接口及其相关...
List 接口是 Java 中的一种集合接口,用于存储有序的集合。List 接口的特点是: 1. 数据有序 2. 允许存放重复元素 List 接口提供了许多有用的方法,例如: * `listIterator()`: 返回列表元素的列表迭代器(按适当...
`ListIterator`是`List`集合特有的迭代器,通过调用`List`的`listIterator()`方法获得。它可以沿任何方向遍历列表,并在遍历过程中修改列表,同时还可以获取当前迭代器的位置。 #### 5.2 示例代码 下面是一个简单的...
在Java中,Set和List是两种常用的集合类型,它们都可以使用迭代器来遍历其元素。 在Java中,Set和List的迭代器实现步骤主要包括以下几个步骤: 1. 创建迭代器对象:在使用迭代器之前,需要创建一个迭代器对象。...
9. `listIterator()`: 返回该列表的列表迭代器。 10. `subList(int fromIndex, int toIndex)`: 返回该列表的一个视图,该视图包含从 fromIndex 到 toIndex 的所有元素。 ArrayList 的方法 ArrayList 是 List 集合...
ListIterator Protocol是Python中的一种特殊的迭代器协议,它是List类型的迭代器协议。ListIterator Protocol提供了`next()`方法来获取下一个元素,并且可以通过`__iter__()`方法来获取迭代器对象。 在Python中,...
为了避免这种问题,通常建议在迭代时不要直接修改集合,或者使用`ListIterator`的`add()`方法添加元素。 6. **`ListIterator`与`Iterator`的区别** `ListIterator`是`Iterator`的一个子接口,专门为`List`类型的...
在Java、C#等面向对象语言中,迭代器模式被广泛应用于容器类,如ArrayList、LinkedList等,使得我们可以方便地遍历集合中的所有元素。 迭代器模式的主要组件包括: 1. **聚合对象(Aggregate)**:包含一组相关或...
除了基本的`hasNext()`和`next()`方法,有些集合类的迭代器还提供了额外的功能,例如`ListIterator`,它可以双向移动,并且提供`previous()`方法,允许从后向前遍历列表。 7. **性能考虑**: 迭代器的设计旨在...
在软件工程中,迭代器模式允许我们遍历一个集合对象的所有元素,而无需暴露集合的内部结构。这种模式将遍历操作与集合对象本身分离,使得我们可以使用不同的方式遍历同一个集合,或者对不同的集合进行遍历。 在Java...
该视频课件包括java基础集合框架之迭代器、List集合、ListIterator、Vector、ArrayList、LinkedList及HashSet等,详细课程内容如下>>