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

javaobject oriented programmingprogramming

自 Java 1.2 版以来,Vector 类一直是 Java 集合系统的一部分。向量有时被称为动态数组,因为与普通数组不同,它们可以扩大和缩小大小。为了确保线程安全,向量是同步的。

虽然存在第三种方法,即使用 Apache Commons 反向迭代向量,但这种方法需要下载额外的 jar 文件和包,而大多数系统并不广泛支持这种方法。本质上,只有两种主要方法可以反向遍历向量元素。

使用的方法

这里使用了两种方法 -

  • 借助 for 循环

  • 借助 ListIterator

方法 1:使用 for 循环

当涉及到反向迭代向量元素时,一种有效的方法是使用 for 循环。通过从索引 (vector.size()-1) 初始化循环并递减直到达到索引 0,您可以精确地从末尾到开头遍历向量元素。

for()

这个 Java 程序展示了反向遍历向量元素的实际演示。它首先创建一个名为"numbers"的向量,并用四个元素填充它。利用 for 循环,它有效地反向迭代向量,从最后一个索引开始,并使用 println 方法一丝不苟地打印每个元素。因此,输出准确地表示以相反顺序显示的向量元素。

算法

  • 步骤 1 - 首先导入必要的 Java 实用程序包:import java.util.*;

  • 步骤 2 - 创建一个名为 TLP 的 Java 类来封装代码。

  • 步骤 3 - 在 TLP 类中添加 main 方法。

  • 步骤 4 - 在 main 方法中,声明一个名为 numbers 的新 Vector 对象来存储字符串:Vector <String> numbers = new Vector<String>();

  • 步骤 5 − 使用 add 方法向向量添加元素:numbers.add("Ten");, numbers.add("Twenty");, numbers.add("Thirty");, numbers.add("Forty");.

  • 步骤 6 − 开始 for 循环以相反顺序遍历向量元素。使用 numbers.size() - 1 的值初始化循环变量 index。

  • 步骤 7 - 将循环条件设置为 index >= 0。

  • 步骤 8 - 每次迭代时将 index 变量减一:index--。

  • 步骤 9 - 在循环中,使用 numbers 向量的 get 方法检索并打印当前索引处的元素:System.out.println(numbers.get(index));。

  • 步骤 10 - 结束 for 循环。

  • 步骤 11 - 结束 main 方法。

  • 步骤 12 - 结束 TLP 类。

示例


import java.util.*;

public class TLP {
   public static void main(String[] args){

      Vector<String> numbers = new Vector<String>();

      // 将元素添加到向量中
      numbers.add("Ten");
      numbers.add("Twenty");
      numbers.add("Thirty");
      numbers.add("Forty");

      for (int index = numbers.size() - 1; index >= 0; index--) {
         System.out.println(numbers.get(index));
      }
   }
}

输出

Forty
Thirty
Twenty
Ten

方法 2

Vector 类的 listIterator() 函数接受起始位置作为参数。此方法提供的 ListIterator 对象可用于从指定点开始循环遍历向量的因子。可以使用 ListIterator 对象向前和向后遍历向量。

语法


public ListIterator<E> listIterator(int index)

ListIterator 支持向前和向后遍历。我们将利用 ListIterator 的 hasPrevious() 方法将向后元素打印到当前索引(如果存在),因为我们必须向后遍历。

hasPrevious()

代码首先创建一个字符串向量并向其中添加四个元素。然后,它为向量创建一个列表迭代器并以相反的顺序迭代元素,将每个元素打印到控制台。代码的输出是向量的四个元素,以相反的顺序打印。

算法

  • 步骤 1 - 导入 java.util 包。

  • 步骤 2 - 创建一个名为 TLP 的 Java 类。

  • 步骤 3 - 定义 main 方法。

  • 步骤 4 - 声明一个名为 numbers 的新 Vector 对象来存储字符串。

  • 步骤 5 - 使用 add 方法向向量添加元素。

  • 步骤 6 - 创建一个名为 listIterator 的 ListIterator 对象,并使用 numbers 向量的 listIterator 方法对其进行初始化,将 size() 方法作为参数。

  • 步骤 7 - 使用 listIterator 的 hasPrevious 方法启动 while 循环以反向顺序遍历向量元素。

  • 步骤 8 - 在循环内,使用 listIterator 的 previous 方法检索并打印前一个元素。

  • 步骤 9 - 结束 while 循环。

  • 步骤 10 - 结束 main 方法。

  • 步骤 11 - 结束 TLP 类。

示例


import java.util.*;

public class TLP {
	public static void main(String[] args) {
        // 生成 String 类型的向量
        Vector<String> numbers = new Vector<String>();
        
        // 向向量添加元素
        numbers.add("Twenty");
        numbers.add("Thirty");
        numbers.add("Forty");
        numbers.add("Fifty");
        
        ListIterator<String> listIterator
        = numbers.listIterator(numbers.size());
        
        // 使用 hasPrevious() 方法迭代 ListIterator
        //
        
        while (listIterator.hasPrevious()) {
        
        System.out.println(listIterator.previous());
        }
	}
}

输出

Fifty
Forty
Thirty
Twenty

结论

在 Java 中以相反顺序迭代向量元素的仅有的两种基本方法就是本文讨论的两种方法。 ListIterator 方法更灵活、适应性更强,但 for 循环方法更简单、更易于使用。


相关文章