📜  iterator vs listiterator (1)

📅  最后修改于: 2023-12-03 14:42:11.295000             🧑  作者: Mango

Iterator vs ListIterator

在Java集合框架中,两个常用的遍历器是Iterator和ListIterator。虽然这两个遍历器都可以用来遍历集合,但它们之间有一些不同之处。

Iterator

Iterator是集合框架中最基本的遍历器。它可以用于遍历任何集合,包括List、Set、Queue和Map。Iterator可以在集合中只读地移动,也可以使用它来删除元素。

Iterator的常见用法是使用while循环和hasNext()方法来遍历集合,如下所示:

List<String> myList = new ArrayList<String>();
myList.add("apple");
myList.add("banana");
myList.add("orange");

Iterator<String> iterator = myList.iterator();

while(iterator.hasNext()) {
    String element = iterator.next();
    System.out.println(element);
}

在上面的例子中,我们首先获取了一个List的Iterator。然后,使用while循环和hasNext()方法遍历整个List,并在每次迭代中获取当前的元素并打印出来。

ListIterator

ListIterator是专门为List集合设计的遍历器。它继承了Iterator接口,并添加了一些额外的功能。与Iterator不同,ListIterator可以在List中前进和后退,也可以在List中添加和替换元素。

ListIterator的常见用法是使用while循环和hasNext()和hasPrevious()方法以及next()和previous()方法来遍历整个List,如下所示:

List<String> myList = new ArrayList<String>();
myList.add("apple");
myList.add("banana");
myList.add("orange");

ListIterator<String> iterator = myList.listIterator();

while(iterator.hasNext()) {
    String element = iterator.next();
    System.out.println(element);
}

while(iterator.hasPrevious()) {
    String element = iterator.previous();
    System.out.println(element);
}

在上面的例子中,我们首先获取了一个List的ListIterator。然后,使用while循环和hasNext()方法遍历整个List,并在每次迭代中获取当前的元素并打印出来。接下来,我们使用while循环和hasPrevious()方法和previous()方法反向遍历List,并在每次迭代中获取当前的元素并打印出来。

总结

Iterator和ListIterator是Java集合框架中两个常用的遍历器。虽然它们都可以用来遍历集合,但它们之间有一些不同之处。Iterator可以用于遍历任何集合,包括List、Set、Queue和Map。而ListIterator是专门为List集合设计的遍历器,它可以在List中前进和后退,也可以在List中添加和替换元素。在使用时,需要根据需要选择合适的遍历器。