當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Vector listIterator()用法及代碼示例


java.util.Vector.listIterator()

此方法以正確的順序在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

java.util.Vector.listIterator(int index)

此方法用於通過指定起始索引來返回列表迭代器。以及雙向和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-



相關用法


注:本文由純淨天空篩選整理自sreeragiyer大神的英文原創作品 Vector listIterator() method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。