Java中的Vector listIterator()方法及示例

Java中的Vector listIterator()方法及示例

**java.util.Vector.listIterator() **该方法以正确的顺序返回Vector对象的元素的列表迭代器。它是双向的,因此可以使用next()和previous()分别进行前向和后向遍历。返回的迭代器是快速失败的。这意味着,在迭代器创建后以任何方式(例如使用Vector.add())通过迭代器自己的remove或add方法以外的任何方式结构地修改向量,都会导致迭代器抛出ConcurrentModificationException。

语法:

public ListIterator listIterator()

参数: 该方法不接受任何输入参数。

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

示例1: 用于演示使用listIterator()进行向前和向后遍历。

// Java代码示例,用于说明listIterator()
  
import java.util.Vector;
import java.util.ListIterator;
  
public class GFG {
    public static void main(String[] args)
    {
        // 声明空向量
        Vector<String> vt = new Vector<String>();
  
        vt.add("Geeks");
        vt.add("for");
        vt.add("Geeks");
        vt.add("2019");
        vt.add("AComputerSciencePortalForGeeks");
  
        // 声明列表迭代器
        ListIterator listItr = vt.listIterator();
  
        // 迭代
        System.out.println("向前遍历:");
        while (listItr.hasNext()) {
            System.out.println(listItr.next());
        }
  
        // 向后遍历
        System.out.println("\n向后遍历:");
        while (listItr.hasPrevious()) {
            System.out.println(listItr.previous());
        }
    }
}
向前遍历:
Geeks
for
Geeks
2019
AComputerSciencePortalForGeeks

向后遍历:
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代码示例,用于说明listIterator(int index)
  
import java.util.Vector;
import java.util.ListIterator;
  
public class GFG {
    public static void main(String[] args)
    {
        // 声明空向量
        Vector<String> vt = new Vector<String>();
  
        vt.add("Geeks");
        vt.add("for");
        vt.add("Geeks");
  
        // 声明列表迭代器
        ListIterator listItr = vt.listIterator(1);
        // 遍历
        while (listItr.hasNext()) {
            System.out.println(listItr.next());
        }
    }
}
for
Geeks

示例3: 用于演示listIterator(int index)抛出的IndexOutOfBoundsException。

// Java代码演示了由listIterator(int index)抛出的IndexOutOfBoundsException
  
import java.util.Vector;
import java.util.ListIterator;
 
public class GFG {
    public static void main(String[] args)
    {
        // 声明空向量
        Vector<String> vt
            = new Vector<String>();
 
        vt.add("Geeks");
        vt.add("for");
        vt.add("Geeks");
 
        // 在超过向量大小的起始位置声明列表迭代器
        try {
            ListIterator listItr
                = vt.listIterator(5);
        }
        catch (IndexOutOfBoundsException e) {
            // 异常处理
            System.out.println("Exception: " + e);
        }
    }
}
异常:java.lang.IndexOutOfBoundsException:索引:5

示例4: 演示了在Vector对象创建列表迭代器后修改Vector对象时ListIterator对象抛出的ConcurrentModificationException。

// Java代码演示了ListIterator对象抛出的ConcurrentModificationException
  
import java.util.ConcurrentModificationException;
import java.util.Vector;
import java.util.ListIterator;
 
public class GFG {
    public static void main(String[] args)
    {
        // 声明空向量
        Vector<String> vt = new Vector<String>();
 
        vt.add("Geeks");
        vt.add("for");
 
        // 声明列表迭代器
        ListIterator listItr = vt.listIterator();
 
        // 创建列表迭代器后修改向量
        vt.add("Geeks");
 
        try {
            // 在这里抛出异常
            System.out.println(listItr.next());
        }
        catch (ConcurrentModificationException e) {
            // 异常处理
            System.out.println("Exception: " + e);
        }
    }
}
异常:java.util.ConcurrentModificationException

参考资料:
https://docs.oracle.com/javase/8/docs/api/java/util/Vector.html#listIterator–

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程