如何在 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 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告