如何在Java中迭代LinkedList?


LinkedHashMap類類似於HashMap,但與HashMap相比,它具有一個附加功能。LinkedList類屬於java.util包。

LinkedList使用雙向連結串列來儲存其元素。鑑於我們的操作通常包括插入和刪除,LinkedList是最佳選擇。

java.util包包含LinkedList集合框架。它作為非連續LinkedList資料結構的實現,在記憶體中儲存元素。

使用的方法

您可以使用五種主要方法來迭代HashMap:

  • 使用for迴圈

  • 使用while迴圈

  • 使用增強型for迴圈或for-each迴圈

  • 使用迭代器

  • 使用forEach()方法

方法1:使用for迴圈迭代LinkedList

for迴圈是迭代Java中LinkedList元素的最簡單方法。為了獲取列表中元素的數量,我們使用size()方法。然後將使用for迴圈迭代這些元素。

size()

這段程式碼建立了一個名為“list”的LinkedList物件,並向其中添加了四個元素:“Java”、“c語言”、“Python”和“Ruby”。然後它使用for迴圈迭代連結串列並列印每個元素。

演算法

  • 步驟1 - 從java.util包匯入必要的LinkedList類。

  • 步驟2 - 在iterateLinkedList包中建立一個名為LinkedListEx1的公共類。

  • 步驟3 - 定義main方法。

  • 步驟4 - 宣告並初始化一個名為list的空LinkedList物件來儲存字串。

  • 步驟5 - 使用add方法向列表新增四個元素(“Java”、“C語言”、“Python”和“Ruby”)。

  • 步驟6 - 開始遍歷連結串列的元素。您可以使用for迴圈來完成。

  • 步驟7 - 在每次迭代中,使用get方法檢索當前索引處的元素。然後將其儲存在element變數中。

  • 步驟8 - 列印element變數的值,該變量表示列表中的每個字串。

示例

package iterateLinkedList; 
import java.util.LinkedList;

public class LinkedListEx1 {

   public static void main(String[] args) {
   
      // Generate a generic LinkedList object of string type.
      LinkedList<String> list = new LinkedList<String>(); // an empty list.

      // Adding elements in the list.
      list.add("Java");
      list.add("C Language");
      list.add("Python");
      list.add("Ruby");

      // Iterating linked list using for-each loop.
      System.out.println("For-each loop Method");
      for (String element : list) {
         System.out.println(element);
      }
   }
}

輸出

For-each loop Method
Java
C Language
Python
Ruby

方法2:使用while迴圈迭代

while迴圈是迭代連結串列條目的第二種方法。它對於LinkedList中少量資料有效。

get()

此程式碼示例生成一個名為“cities”的LinkedList。然後向其中新增四個字串。然後它使用while迴圈迭代連結串列並列印每個元素。

演算法

  • 步驟1 - 建立一個名為“cities”的空LinkedList。

  • 步驟2 - 將字串“Bangalore”、“Mumbai”、“Kolkatta”和“Chennai”新增到cities列表。

  • 步驟3 - 指定一個計數器變數“num”,其預設值為0。

  • 步驟4 - 進入一個while迴圈,只要cities列表的大小大於“num”的值,該迴圈就繼續。

  • 步驟5 - 在每次迭代中,使用get方法檢索當前索引(由“num”確定)處的元素並列印它。

  • 步驟6 - 將“num”的值增加1。

  • 步驟7 - 結束迴圈和程式。

示例

package iterateLinkedList;

import java.util.LinkedList;

public class Tutorialspoint {
   public static void main(String[] args) {
      // generate a LinkedList object of string type.
      LinkedList<String> cities = new LinkedList<String>();

      // Addition of elements of only string type.
      cities.add("Bangalore");
      cities.add("Mumbai");
      cities.add("Kolkatta");
      cities.add("Chennai");

      System.out.println("**Using While Loop for iteration of LinkedList **");
      int num = 0;
      while (cities.size() > num) {
         System.out.println(cities.get(num));
         num++;
      }
   }
}

輸出

**Using While Loop for iteration of LinkedList **
Bangalore
Mumbai
Kolkatta
Chennai

方法3:使用增強型for迴圈迭代

使用for-each迴圈或增強型for迴圈迭代Java中的LinkedList是另一種方法。在此函式中,我們使用增強型for迴圈直接迭代LinkedList的元素。

for()

這段程式碼建立一個LinkedList並向其中新增三個字串。然後它使用增強型for迴圈迭代LinkedList的元素並列印它們。

演算法

  • 步驟1 - 從java.util包匯入所需的LinkedList類。

  • 步驟2 - 建立公共類Tutorialspoint。

  • 步驟3 - 建立main方法。

  • 步驟4 - 建立一個名為linkedList的LinkedList物件來儲存字串。

  • 步驟5 - 使用add方法將字串“Welcome”、“to”和“Tutorialspoint”新增到連結串列。

  • 步驟6 - 呼叫iterateUsingEnhancedForLoop方法並將linkedList作為引數傳遞。

  • 步驟7 - 定義iterateUsingEnhancedForLoop方法,該方法接受字串的LinkedList作為引數。

  • 步驟8 - 列印初始訊息“使用增強型for迴圈迭代LinkedList:”。

  • 步驟9 - 使用增強型for迴圈迭代linkedList中的每個元素(listElement)。

  • 步驟10 - 在每次迭代中,列印listElement的值,後跟一個空格。

  • 步驟11 - 關閉迴圈和程式。

示例

import java.util.LinkedList;

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

      LinkedList<String> linkedList = new LinkedList<>();

      linkedList.add("Welcome");
      linkedList.add("to");
      linkedList.add("Tutorialspoint");

      iterateUsingEnhancedForLoop(linkedList);
   }

   public static void iterateUsingEnhancedForLoop(LinkedList<String> linkedList){

      System.out.print("Iterating the LinkedList with the help of enhanced for loop : ");
      for (String listElement : linkedList) {
         System.out.print(listElement + " ");
      }
   }
}

輸出

Iterating the LinkedList with the help of enhanced for loop : Welcome to Tutorialspoint

方法4:使用迭代器

使用迭代器是最好的方法之一。它只不過是使用iterable介面提供的iterator()方法來建立一個Iterator物件。然後我們可以使用此Iterator物件來迭代LinkedList的元素。

while()

此程式碼示例建立一個LinkedList並向其中新增五個字元。然後它使用Iterator迭代LinkedList並列印每個字元。

演算法

  • 步驟1 - 從java.util包匯入必要的Iterator和LinkedList類。

  • 步驟2 - 定義一個名為Tutorialspoint的公共類。

  • 步驟3 - 定義main方法。

  • 步驟4 - 建立一個名為list的LinkedList物件來儲存字元。

  • 步驟5 - 使用add方法將字元'V'、'W'、'X'、'Y'和'Z'新增到LinkedList。

  • 步驟6 - 列印初始訊息“使用迭代器進行迭代”。

  • 步驟7 - 使用list的iterator方法建立一個Iterator物件itr。

  • 步驟8 - 進入一個while迴圈,只要LinkedList中還有更多元素(itr.hasNext()),該迴圈就繼續。

  • 步驟9 - 在每次迭代中,從Iterator(itr.next())檢索下一個元素並將其儲存在Character型別的obj變數中。

  • 步驟10 - 列印obj的值。

示例

package iterateLinkedList;

import java.util.Iterator;
import java.util.LinkedList;

public class Tutorialspoint {
   public static void main(String[] args) {
      LinkedList<Character> list = new LinkedList<>();
      list.add('V');
      list.add('W');
      list.add('X');
      list.add('Y');
      list.add('Z');

      System.out.println("Using Iterator for iteration");
      Iterator<Character> itr = list.iterator();
      while (itr.hasNext()) {
         Character obj = itr.next();
         System.out.println(obj);
      }
   }
}

輸出

Using Iterator for iteration
V
W
X
Y
Z

方法5:使用forEach()

Java 8標誌著forEach()方法的首次亮相。直到所有專案都已處理或過程遇到錯誤,每個Iterable元素都將受到任務執行的約束。

forEach()

這段程式碼建立一個LinkedList並向其中新增五個整數。然後使用forEach方法迭代LinkedList的元素,並顯示它們。

演算法

  • 步驟1 - 從java.util包匯入必要的LinkedList類。

  • 步驟2 - 定義一個名為TLP的公共類。

  • 步驟3 - 定義main方法。

  • 步驟4 - 建立一個名為linkedList的LinkedList物件來儲存整數。

  • 步驟5 - 使用add方法將整數100、200、300、400和500新增到LinkedList。

  • 步驟6 - 呼叫iterateUsingForEach方法並將linkedList作為引數傳遞。

  • 步驟7 - 定義iterateUsingForEach方法,該方法接受整數的LinkedList作為引數。

  • 步驟8 - 列印初始訊息“使用forEach函式迭代LinkedList:”。

  • 步驟9 - 使用LinkedList的forEach函式,傳遞一個lambda表示式,該表示式列印每個元素,後跟一個空格。

  • 步驟10 - 終止程式

示例

import java.util.LinkedList;

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

      LinkedList<Integer> linkedList = new LinkedList<>();

      linkedList.add(100);
      linkedList.add(200);
      linkedList.add(300);
      linkedList.add(400);
      linkedList.add(500);

      iterateUsingForEach(linkedList);
   }

   public static void iterateUsingForEach(LinkedList<Integer> linkedList){
      System.out.print("Iteration of the LinkedList by employing for each function : ");
      linkedList.forEach((element) -> System.out.print(element + " "));
   }
}

輸出

Iteration of the LinkedList by employing for each function : 100 200 300 400 500

結論

LinkedHashMap是HashMap的一個特殊子類,它包含一個雙向連結串列,該連結串列連線其所有條目。與HashMap不同,LinkedHashMap保留元素插入的順序。此特性使LinkedHashMap成為需要按其原始插入順序遍歷對映條目的應用程式的理想選擇。

更新於:2023年10月19日

瀏覽量:152

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告