如何在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成為需要按其原始插入順序遍歷對映條目的應用程式的理想選擇。