如何在 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 循环方法更简单、更易于使用。