📜  如何在Java中以相反的顺序迭代向量元素?

📅  最后修改于: 2022-05-13 01:55:30.647000             🧑  作者: Mango

如何在Java中以相反的顺序迭代向量元素?

Vector 类位于Java .util 包中,它实现了 List 接口。 Vector 类包含在Java 1.2 版的Java集合框架中。与数组不同,向量可以增长和缩小它们的大小,因此它们也被称为动态数组。向量是同步的,即它们是线程安全的。

基本上有两种以相反顺序迭代向量元素的方法,虽然还有另一种方法使用 Apache Commons 向后反向迭代向量,但要使用它,我们只需要下载一些 jar 文件和包,而且,大多数系统不支持apache-commons。

我们将使用两种方法:

  1. 使用 For 循环
  2. 使用 ListIterator

方法一:使用For循环

要使用 for 循环反向迭代向量元素,我们可以通过运行从索引 (vector.size()-1) 到索引 0 的循环从反向遍历向量。

Java
// Java Program to traverse the vector elements in backward
// direction
  
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
        // creating a vector of String type
        Vector numbers = new Vector();
        
        // adding elements to vector
        numbers.add("One");
        numbers.add("Two");
        numbers.add("Three");
        numbers.add("Four");
  
        // Iterating from index equal to numbers.size()-1to
        // 0 and decrement index by 1 using the for loop
  
        for (int index = numbers.size() - 1; index >= 0; index--) {
            System.out.println(numbers.get(index));
        }
    }
}


Java
// Java Program to traverse the vector elements in backward
// direction using ListIterator
  
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
        // creating a vector of String type
        Vector numbers = new Vector();
        
        // adding elements to vector
        numbers.add("One");
        numbers.add("Two");
        numbers.add("Three");
        numbers.add("Four");
  
        // listIterator method will return the list of
        // String of type ListIterator.
        ListIterator listIterator
            = numbers.listIterator(numbers.size());
  
        // Iterate the ListIterator using the hasPrevious()
        // method
  
        while (listIterator.hasPrevious()) {
            
            // if element exist at previous index,then print
            // that element
            System.out.println(listIterator.previous());
        }
    }
}


输出
Four
Three
Two
One

方法二:使用ListIterator

Vector 类具有 ListIterator 方法,用于迭代向量。 ListIterator 方法从必须开始遍历的位置获取起始索引并返回 ListIterator。

  • ListIterator 具有向前和向后遍历的方法。由于我们必须向后遍历,所以我们将传递起始索引为等于数组的大小,然后我们将使用 ListIterator 的hasPrevious()方法,其中我们将向后元素打印到当前索引(如果存在)。

Java

// Java Program to traverse the vector elements in backward
// direction using ListIterator
  
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
        // creating a vector of String type
        Vector numbers = new Vector();
        
        // adding elements to vector
        numbers.add("One");
        numbers.add("Two");
        numbers.add("Three");
        numbers.add("Four");
  
        // listIterator method will return the list of
        // String of type ListIterator.
        ListIterator listIterator
            = numbers.listIterator(numbers.size());
  
        // Iterate the ListIterator using the hasPrevious()
        // method
  
        while (listIterator.hasPrevious()) {
            
            // if element exist at previous index,then print
            // that element
            System.out.println(listIterator.previous());
        }
    }
}
输出
Four
Three
Two
One