如何在Java中迭代LinkedHashMap?
LinkedHashMap是一個與HashMap相同的類,但它還提供了一個跟蹤元素插入順序的功能。HashMap不保留元素新增的順序,儘管它允許快速插入、查詢和刪除元素。
LinkedHashMap透過維護對映中每個條目的連結串列來解決這個問題。這個連結串列按照元素新增的順序儲存元素。因此,當迭代LinkedHashMap時,元素將按照新增它們的順序返回。
使用的方法
要在Java中迭代LinkedHashMap,可以使用兩種主要方法:
使用keySet()和get()方法
使用entrySet()和Iterator
方法1:使用keySet()和get()方法
keySet()方法返回對映中所有鍵的集合。get()方法返回與給定鍵關聯的值。我們可以透過迭代keySet()並對每個鍵呼叫get()來列印對映中的所有鍵值對。
語法
linked_hash_map.keySet()
LinkedHashMap類的keySet()方法不需要任何引數。它返回一個包含LinkedHashMap中所有鍵的集合。
可以使用get()方法迭代這個鍵集合來獲取對映中與鍵關聯的值。
使用for迴圈反覆迭代對映的鍵。for迴圈將迭代keySet()方法返回的集合。在迴圈的每次迭代中,將檢索集合中的當前鍵,然後使用get()方法獲取對映中關聯的值。
keySet()
此程式碼使用keySet()方法從LinkedHashMap中檢索鍵集,然後使用for-each迴圈迭代每個鍵。在迴圈內,它使用get()方法檢索每個鍵對應的值,並列印鍵值對。
演算法
步驟1 - 首先建立一個物件。這裡我們使用了LinkedHashMap。
步驟2 - 在對映上建立一些鍵值對。
步驟3 - 使用keySet()方法從對映中獲取鍵集。
步驟4 - 使用for迴圈迭代鍵。
步驟5 - 對於每個鍵,使用get()方法檢索與該鍵關聯的值。
步驟6 - 列印鍵及其對應的值。
示例
// Iterate through LinkedHashMap with the help of keySet() and get() Method import java.util.LinkedHashMap; import java.util.Set; public class Tutorialspoint { public static void main(String a[]){ // creating the object of LinkedHashMap LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<String, String>(); // addition of the elements in linkedHashMap linkedHashMap.put("P", "Python"); linkedHashMap.put("J", "Java"); linkedHashMap.put("R", "Ruby"); Set<String> keys = linkedHashMap.keySet(); // LinkedHashMap's elements are printed for (String key : keys) { System.out.println(key + " -- " + linkedHashMap.get(key)); } } }
輸出
P -- Python J -- Java R -- Ruby
方法2:使用entrySet()和Iterator
使用entrySet()方法和Iterator迭代LinkedHashMap允許您按特定順序遍歷對映的條目,保留插入順序。
語法
Linkedhash_map.entrySet()
引數 - 此方法不接受任何輸入引數。
返回值:此方法返回一個包含與LinkedHashMap相同元素的集合。
換句話說,該方法無需使用者提供任何資料即可使用。它只返回一個包含LinkedHashMap內容副本的集合。
entrySet()
程式碼示例說明如何迭代LinkedHashMap。它列印其條目。它使用entrySet()方法檢索鍵值對的集合。然後它建立一個迭代器來遍歷條目,並分別列印每個條目。輸出顯示LinkedHashMap的條目及其對應的鍵值。
演算法
步驟1 - 建立一個名為“linkedHashMap”的LinkedHashMap物件。
步驟2 - 使用put()方法向linkedHashMap新增元素。
步驟3 - 使用entrySet()方法從linkedHashMap獲取條目集,並將其儲存在“entrySet”變數中。
步驟4 - 使用entrySet上的iterator()方法建立一個迭代器。
步驟5 - 使用while迴圈迭代LinkedHashMap條目。
步驟6 - 在迴圈中,使用hasNext()方法檢查迭代器。
步驟7 - 如果還有更多條目,則使用next()方法檢索下一個條目。
步驟8 - 列印輸出。
示例
// Iterating over linkedHashMap by employing entrySet() and iterator import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Set; public class TLP { public static void main(String[] args){ // Create a LinkedHashMap and add elements to it LinkedHashMap<String, String> linkedHashMap = new LinkedHashMap<String, String>(); // incorporating the elements to the linkedHashMap linkedHashMap.put("Java", "is the first elemenent"); linkedHashMap.put("Python", "is the second element"); linkedHashMap.put("Ruby", "is the third element"); Set entrySet = linkedHashMap.entrySet(); // Obtain an Iterator for the entries Set Iterator it = entrySet.iterator(); // Iterate through LinkedHashMap entries System.out.println("LinkedHashMap entries -> "); while (it.hasNext()) // iterating over each element employing it.next() System.out.println(it.next()); } }
輸出
LinkedHashMap entries -> Java=is the first elemenent Python=is the second element Ruby=is the third element
結論
在Java中迭代LinkedHashMap可以使用兩種主要方法:
使用keySet()方法和get()方法,從中檢索對映的鍵集並迭代它們以訪問相應的值。
使用entrySet()方法和Iterator,這允許您按插入順序遍歷對映的條目。