In java, we will see first how Iterator differs from ListIterator?
在Java中,我们将首先看到Iterator与ListIterator有何不同?
迭代器 (Iterator)
Iterator is an interface which is introduced in java.
Iterator是Java中引入的接口。
Iterator is unidirectional by nature (i.e It iterates or traverse an element or object in one direction only that's is forward direction)
迭代器本质上是单向的(即,仅在向前的方向上迭代或遍历元素或对象)
While iterating an element by Iterator we can perform read and remove operation and we can't perform any other operation like add an object, replace an object.
在使用Iterator迭代元素时,我们可以执行读取和删除操作,而不能执行任何其他操作,例如添加对象,替换对象。
We can create an Iterator object by using iterator() method of Iterator interface.
我们可以使用Iterator接口的iterator()方法创建一个Iterator对象。
Syntax:
句法:
Interface_name object_name = Collection_method. Iterator_method
Example:
例:
Iterator itr = Set.iterator();
Iterator can be used in List, Set, Queue, etc and it supports other interfaces of collection framework too alone with List.
迭代器可以在列表,集合,队列等中使用,并且它与列表一起也支持收集框架的其他接口。
Iterator program:
迭代器程序:
import java.util.*;
class IteratorClass {
public static void main(String[] args) {
// Creating a Set interface object
Set set = new HashSet();
// By using add() method to add few elements in set
set.add("Java");
set.add("Python");
set.add("C++");
set.add("Ruby");
set.add("C");
// Creating an object of Iterator interface
Iterator itr = set.iterator();
// loop for traversing an element
while (itr.hasNext()) {
String str = (String) itr.next();
if (str.equals("C"))
itr.remove();
}
// Display elements of Set interface
System.out.println("The final list of Iterator :" + set);
}
}
Output
输出量
E:\Programs>javac IteratorClass.java
E:\Programs>java IteratorClass
The final list of Iterator :[Ruby, Python, C++, Java]
In java, we will see first how ListIterator differs from Iterator?
在Java中,我们将首先看到ListIterator与Iterator有何不同?
ListIterator (ListIterator)
ListIterator is a child interface of Iterator which is introduced in java.
ListIterator是Java中引入的Iterator的子接口。
ListIterator is a bi-directional by nature (i.e It iterates or traverse an element or object in both directions that's is the forward direction and backward direction).
ListIterator本质上是双向的(即,它在向前或向后的两个方向上迭代或遍历元素或对象)。
While iterating an element by ListIterator we can perform read, remove, replace and add operation and we can perform any other operation.
在通过ListIterator迭代元素时,我们可以执行读取,删除,替换和添加操作,并且可以执行任何其他操作。
We can create a ListIterator object by using listIterator() method of ListIterator interface.
我们可以使用ListIterator接口的listIterator()方法创建一个ListIterator对象。
Syntax:
句法:
Interface_name(or class_name) object_name = Collection_method.ListIterator_method
Example:
例:
ListIterator litr = List.listIterator();
ListIterator can be used in List only and it does not support other interfaces of collection framework like Set, Queue, etc.
ListIterator只能在List中使用,它不支持集合框架的其他接口,如Set,Queue等。
ListIterator program:
ListIterator程序:
import java.util.*;
class ListIteratorClass {
public static void main(String[] args) {
// Creating a LinkedList object
LinkedList ll = new LinkedList();
// By using add() method to add few elements in linked list
ll.add("Java");
ll.add("Python");
ll.add("C++");
ll.add("Ruby");
ll.add("C");
// Creating an object of ListIterator interface
ListIterator litr = ll.listIterator();
// loop for traversing an element
while (litr.hasNext()) {
String str = (String) litr.next();
// We are removing an element by using remove() method
if (str.equals("C"))
litr.remove();
// We are replacing an element by using set() method
if (str.equals("C++"))
litr.set("TOC");
// We are adding an element by using add() method
if (str.equals("C"))
litr.add("Data Structure");
}
// Display elements of Set interface
System.out.println("The final list of ListIterator :" + ll);
}
}
Output
输出量
E:\Programs>javac ListIteratorClass.java
E:\Programs>java ListIteratorClass
The final list of ListIterator :[Java, Python, TOC, Ruby, Data Structure]
翻译自: https://www.includehelp.com/java/differences-between-iterator-and-listiterator-in-java.aspx