如何在 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 迴圈方法更簡單、更易於使用。