ListIterator如何实现倒序遍历
时间: 2024-01-25 17:02:20 浏览: 71
ListIterator提供了从双向链表中的任意位置进行遍历的功能,可以通过调用ListIterator的previous()方法来实现倒序遍历。具体实现步骤如下:
1. 获取List的ListIterator对象
```java
List<String> list = new ArrayList<>();
ListIterator<String> listIterator = list.listIterator(list.size());
```
2. 调用ListIterator的previous()方法遍历List
```java
while (listIterator.hasPrevious()) {
String str = listIterator.previous();
System.out.println(str);
}
```
上述代码中,listIterator.listIterator(list.size()) 的作用是获取List的ListIterator对象,并将其指针指向List的末尾位置,然后通过调用hasPrevious()方法来判断是否存在前一个元素,如果存在则调用previous()方法获取前一个元素的值并输出。这样就可以实现List的倒序遍历了。
相关问题
ListIterator 可以双向遍历,什么意思
ListIterator 是 Java 集合框架中的一个接口,它继承自 Iterator 接口,可以用于双向遍历 List 集合。与普通的 Iterator 只能进行单向遍历不同,ListIterator 提供了向前和向后遍历的功能。
通过 ListIterator,你可以使用 next() 方法按顺序遍历 List 集合中的元素,还可以使用 previous() 方法按逆序遍历 List 集合中的元素。同时,ListIterator 还提供了其他一些方法,如 add()、set() 和 remove(),可以对集合进行修改操作。
下面是一个简单的示例代码,展示如何使用 ListIterator 进行双向遍历:
```java
List<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Orange");
ListIterator<String> iterator = list.listIterator();
// 顺序遍历
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
// 逆序遍历
while (iterator.hasPrevious()) {
String element = iterator.previous();
System.out.println(element);
}
```
在上面的代码中,首先创建了一个 ArrayList,并添加了几个元素。然后通过 list.listIterator() 获取到 ListIterator 实例。接下来,使用 hasNext() 和 next() 方法按顺序遍历集合中的元素,并使用 hasPrevious() 和 previous() 方法按逆序遍历集合中的元素。
Iterator只能单向遍历,ListIterator可以双向遍历。
是的,你说得对。Iterator接口是Java集合框架中用于单向遍历集合元素的接口,它只能从前往后遍历集合。而ListIterator接口是Iterator接口的子接口,它扩展了Iterator接口的功能,可以在集合中双向遍历(向前和向后)。ListIterator可以通过previous()方法向前遍历集合元素。可以使用List接口的listIterator()方法来获取ListIterator对象。
阅读全文