如何在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,這允許您按插入順序遍歷對映的條目。

更新於:2023年10月19日

2K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告