此方法以正確的順序在Vector對象的元素上返回列表迭代器。它是雙向的,因此可以分別使用next()和previous()進行正向和反向遍曆。這樣返回的迭代器是fail-fast。這意味著在創建迭代器之後,以任何方式對向量進行結構修改,除非通過迭代器自己的remove或add方法(例如,使用Vector.add()),都會導致迭代器拋出ConcurrentModificationException。
用法:
public ListIterator listIterator()
參數:此方法不接受任何輸入參數。
返回值:此方法返回一個ListIterator對象,該對象可用於遍曆Vector對象。
示例1:為了演示使用listIterator()的前後遍曆。
// Java code to illustrate listIterator()
import java.util.Vector;
import java.util.ListIterator;
public class GFG {
public static void main(String[] args)
{
// Declare empty vector
Vector<String> vt = new Vector<String>();
vt.add("Geeks");
vt.add("for");
vt.add("Geeks");
vt.add("2019");
vt.add("AComputerSciencePortalForGeeks");
// Declare list iterator
ListIterator listItr = vt.listIterator();
// Forward iterations
System.out.println("Forward Traversal:");
while (listItr.hasNext()) {
System.out.println(listItr.next());
}
// Backward iterations
System.out.println("\nBackward Traversal:");
while (listItr.hasPrevious()) {
System.out.println(listItr.previous());
}
}
}
Forward Traversal: Geeks for Geeks 2019 AComputerSciencePortalForGeeks Backward Traversal: AComputerSciencePortalForGeeks 2019 Geeks for Geeks
此方法用於通過指定起始索引來返回列表迭代器。以及雙向和fail-fast。
用法:
public ListIterator listIterator(int index)
參數:參數index是一個整數類型值,它指定要從列表迭代器返回的第一個元素(通過調用next())。
返回值:此方法返回一個ListIterator對象,該對象可用於遍曆Vector對象。
異常:如果索引超出範圍(索引size()),則此方法引發IndexOutOfBoundsException。
示例2:演示listIterator(int index)。
// Java code to illustrate listIterator(int index)
import java.util.Vector;
import java.util.ListIterator;
public class GFG {
public static void main(String[] args)
{
// Declare empty vector
Vector<String> vt = new Vector<String>();
vt.add("Geeks");
vt.add("for");
vt.add("Geeks");
// Declare list iterator
ListIterator listItr = vt.listIterator(1);
// traversal
while (listItr.hasNext()) {
System.out.println(listItr.next());
}
}
}
for Geeks
示例3:演示listIterator(int index)引發的IndexOutOfBoundsException。
// Java code to illustrate IndexOutOfBoundsException
// thrown by listIterator(int index)
import java.util.Vector;
import java.util.ListIterator;
public class GFG {
public static void main(String[] args)
{
// Declare empty vector
Vector<String> vt
= new Vector<String>();
vt.add("Geeks");
vt.add("for");
vt.add("Geeks");
// Declare list iterator at starting
// index greater than vector size
try {
ListIterator listItr
= vt.listIterator(5);
}
catch (IndexOutOfBoundsException e) {
// Exception handling
System.out.println("Exception: " + e);
}
}
}
Exception: java.lang.IndexOutOfBoundsException: Index: 5
示例4:演示在創建Vector迭代器之後修改Vector對象時ListIterator對象引發的ConcurrentModificationException。
// Java code to illustrate ConcurrentModificationException
// thrown by ListIterator object
import java.util.ConcurrentModificationException;
import java.util.Vector;
import java.util.ListIterator;
public class GFG {
public static void main(String[] args)
{
// Declare empty vector
Vector<String> vt = new Vector<String>();
vt.add("Geeks");
vt.add("for");
// Declare list iterator
ListIterator listItr = vt.listIterator();
// modify vector after creating list iterator
vt.add("Geeks");
try {
// Exception thrown here
System.out.println(listItr.next());
}
catch (ConcurrentModificationException e) {
// Exception handling
System.out.println("Exception: " + e);
}
}
}
Exception: java.util.ConcurrentModificationException
參考:
https://docs.oracle.com/javase/8/docs/api/java/util/Vector.html#listIterator-
相關用法
- Java List listIterator()用法及代碼示例
- Java AbstractList listIterator()用法及代碼示例
- Java ArrayList listIterator()用法及代碼示例
- Java Stack listIterator()用法及代碼示例
- Java CopyOnWriteArrayList listIterator()用法及代碼示例
- Java Stack listIterator(int)用法及代碼示例
- Java LinkedList listIterator()用法及代碼示例
- Java Vector clone()用法及代碼示例
- Java Vector retainAll()用法及代碼示例
- Java Vector iterator()用法及代碼示例
- Java Vector toArray()用法及代碼示例
- Java AbstractSequentialList ListIterator()用法及代碼示例
- Java Vector add()用法及代碼示例
注:本文由純淨天空篩選整理自sreeragiyer大神的英文原創作品 Vector listIterator() method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。