Java中的Iterator和ListIterator之间的区别
Java提供了这两个接口来逐个遍历存储在集合中的数据。迭代器和列表迭代器的内部实现使它们彼此不同,但是两个迭代器的主要议程是相同的。
以下是迭代器和List迭代器之间的重要区别。
序号 | 键 | 迭代器 | List迭代器 |
---|---|---|---|
1 | 适用于 | 迭代器可用于遍历任何集合,而与集合的类型无关。 | 列表迭代器只能用于仅迭代列表集合实现的类,例如arraylist,linkedlist等。 |
2 | 呼唤 | 如前 ,必须使用迭代器枚举所有Collections实现的接口中的元素,如Set,List,Queue,Deque以及Map接口的所有实现的类。可以通过调用迭代器() Collection接口的方法来创建迭代器对象。 | 另一方面,当我们要枚举List的元素时必须使用List迭代器.List迭代器的对象可以通过调用list迭代器() List接口中存在的方法来创建。 |
3 | 数据遍历 | 在迭代器的情况下,数据只能在一个方向上遍历,因为迭代器只能在向前方向上遍历 | 列表迭代器可以在正反两个方向上遍历,这使得数据可以在两个方向上遍历。 |
4 | 删除中 | 在迭代器的情况下,不允许删除元素。 | List迭代器可以替换列表集合中的元素。 |
5 | 加成 | 在迭代器的情况下,不允许添加元素,因为它会引发ConcurrentModificationException。 | List迭代器可以随时轻松地在列表集合中添加元素。 |
6 | 修改 | 在迭代器的情况下,不允许修改元素,因为它会引发ConcurrentModificationException。 | List迭代器可以通过调用set() 方法随时轻松地修改列表集合中的元素。 |
7 | 元素索引 | 使用迭代器时,无法获取集合中遍历的元素的索引。 | List迭代器具有类似nextIndex() 和方法,previousIndex() 可在遍历List时随时获取元素的索引。 |
迭代器与List迭代器的示例
JavaTester.java
import java.io.*;import java.util.*;
public class JavaTester {
public static void main(String[] args){
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
//迭代器
迭代器 itr = list.迭代器();
System.out.println("迭代器 traversal:");
while (itr.hasNext())
System.out.print(itr.next() + " ");
System.out.println();
// List迭代器
List迭代器 i = list.list迭代器();
System.out.println("List迭代器 Forward traversal:");
while (i.hasNext()){
System.out.print(i.next() + " ");
System.out.println();
System.out.println("List迭代器 Backward traversal : ");
}
while (i.hasPrevious()){
System.out.print(i.previous() + " ");
System.out.println();
}
}
}
输出结果
迭代器 traversal:1 2 3 4 5
List迭代器 Forward traversal:
1
List迭代器 Backward traversal :
2
List迭代器 Backward traversal :
3
List迭代器 Backward traversal :
4
List迭代器 Backward traversal :
5
List迭代器 Backward traversal :
5
4
3
2
1
以上是 Java中的Iterator和ListIterator之间的区别 的全部内容, 来源链接: utcz.com/z/343318.html