Java Vector listIterator()方法及实例

Java Vector listIterator()方法及实例

java.util.Vector.listIterator()

该方法以适当的顺序返回一个 Vector 对象的元素的列表迭代器。它是双向的,所以前向和后向的遍历都是可能的,分别使用 next() 和 previous() 。这样返回的迭代器是快速失效的。这意味着,在迭代器创建后,除了通过迭代器自己的删除或添加方法(例如,使用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)

该方法用于通过指定起始索引来返回一个列表迭代器。也是双向的和快速的。

语法

public ListIterator listIterator(int index)

参数: 参数index是一个整数类型的值,指定从列表迭代器返回的第一个元素(通过调用 next() )。

返回值: 该方法返回一个ListIterator对象,可以用来遍历Vector对象。

异常: 如果索引超出范围(index < 0 或 index > 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: 展示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-

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程