Java中的List listIterator()方法及示例
在 Java 中,List 接口是一个非常重要的接口。它提供了一个用于存储有序元素的集合类,这些元素可以按照它们在列表中出现的顺序进行访问。在 List 接口中,提供了许多方法来操作这些元素。其中,listIterator() 方法是其中之一。
List listIterator() 方法介绍
listIterator() 方法返回一个可以迭代访问 List 中的元素的 ListIterator 接口实例。ListIterator 接口扩展了 Iterator 接口,提供了更多的方法来支持对元素进行双向迭代,而不仅仅是单向迭代。
ListIterator 接口中提供的方法包括:
- add(E e) :将指定的元素插入到列表中(可选操作)。
- hasNext() :如果列表迭代器有更多元素,则返回 true 。
- hasPrevious() :如果列表迭代器在最初元素之前有更多元素,则返回 true 。
- next() :返回列表中的下一个元素。
- nextIndex() :返回列表中的下一个元素的索引。
- previous() :返回列表中的上一个元素。
- previousIndex() :返回列表中的上一个元素的索引。
- remove() :从列表中移除当前迭代的元素(可选操作)。
- set(E e) :用指定的元素替换当前迭代的元素(可选操作)。
List listIterator() 方法示例
下面是一个简单的示例程序,演示了如何使用 listIterator() 方法来迭代访问 List 中的元素,并在迭代过程中进行一些操作:
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("cherry");
list.add("orange");
list.add("pear");
ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
int index = iterator.nextIndex();
String element = iterator.next();
System.out.println("[" + index + "] " + element);
if ("banana".equals(element)) {
iterator.set("grape");
}
if ("orange".equals(element)) {
iterator.add("lemon");
}
if ("pear".equals(element)) {
iterator.remove();
}
}
System.out.println();
iterator = list.listIterator(list.size());
while (iterator.hasPrevious()) {
int index = iterator.previousIndex();
String element = iterator.previous();
System.out.println("[" + index + "] " + element);
}
}
}
运行上述程序,可以看到以下输出结果:
[0] apple
[1] grape
[2] cherry
[3] orange
[4]
[3] orange
[2] grape
[1] cherry
[0] apple
在这个示例程序中,我们首先创建了一个包含几个元素的 List ,然后使用 listIterator() 方法获取一个 ListIterator 对象,接着使用 while 循环进行迭代访问。
在每次迭代访问过程中,我们首先获取当前元素的索引和值,然后根据要求来进行相应的操作。例如,如果当前元素是 “banana” ,则将其替换为 “grape”;如果当前元素是 “orange” ,则在其后添加一个元素 “lemon”;如果当前元素是 “pear” ,则将其从列表中删除。
接着,我们再次获取一个 ListIterator 对象,但这次是从列表末尾开始向前迭代访问,输出结果如下:
[3] orange
[2] grape
[1] cherry
[0] apple
结论
通过本篇文章,我们了解了 Java 中的 List listIterator() 方法,以及如何使用它来迭代访问 List 中的元素,并在迭代过程中进行一些操作。使用 listIterator() 方法可以方便地实现对列表的双向迭代访问,实现更多的列表操作。熟练掌握 listIterator() 方法可以提高开发效率,并使代码更加简洁、易读。