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


Vector 类自 Java 1.2 版本起就成为 Java 集合系统的一部分。Vector 有时被称为动态数组,因为与普通数组不同,它们的大小可以扩展和收缩。Vector 通过确保线程安全来实现同步。

虽然存在第三种方法,即使用 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 变量递减 1: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>();

      // adding elements to vector
      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 - 开始一个 while 循环,使用 listIterator 的 hasPrevious 方法以反向顺序遍历向量元素。

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

  • 步骤 9 - 结束 while 循环。

  • 步骤 10 - 结束 main 方法。

  • 步骤 11 - 结束 TLP 类。

示例

import java.util.*;

public class TLP {
	public static void main(String[] args) {
		// generating a vector of String type
		Vector<String> numbers = new Vector<String>();
		
		// adding elements to vector
		numbers.add("Twenty");
		numbers.add("Thirty");
		numbers.add("Forty");
		numbers.add("Fifty");

		ListIterator<String> listIterator
			= numbers.listIterator(numbers.size());

		// Iterate the ListIterator using the hasPrevious()
		// method

		while (listIterator.hasPrevious()) {
	
			System.out.println(listIterator.previous());
		}
	}
}

输出

Fifty
Forty
Thirty
Twenty

结论

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

更新于: 2023-10-18

172 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告