如何在 Java 中透過索引獲取 LinkedHashMap 的值?


LinkedHashMap 是 Java 集合框架的一個泛型類,它實現了 Map 介面。顧名思義,它是 HashMap 類的子類,並使用雙向連結串列按插入順序儲存條目。但是,LinkedHashMap 沒有進行任何型別的索引來儲存條目,因此,使用索引從 LinkedHashMap 獲取指定值是一個不小的挑戰。本文旨在解釋如何使用索引從 LinkedHashMap 中查詢值。

Java 程式:透過索引獲取 LinkedHashMap 的值

在直接跳到示例程式之前,讓我們先了解一些關於 LinkedHashMap 的更多要點。

LinkedHashMap

如前所述,LinkedHashMap 類擴充套件了 HashMap 類以實現 Map 介面。因此,它可以使用所有方法,並且可以執行 HashMap 類能夠執行的類似操作。它維護鍵值對條目,以及它們插入到對映中的順序。鍵是一個用於獲取和接收與其關聯的值的物件。此外,無論何時返回其元素,它都將按插入順序列印。

LinkedHashMap 的通用語法如下所示:

語法

LinkedHashMap< TypeOfKey, TypeOfValue > nameOfMap = new LinkedHashMap<>();

在以上語法中:

TypeOfKey:指定鍵的資料型別。

TypeOfValue:指定將儲存在對映中的值的資料型別。

nameOfMap:為您的對映提供一個合適的名稱。

現在,讓我們建立 Java 程式,使用索引從 LinkedHashMap 中查詢指定值。

示例 1

在以下示例中,我們將使用迭代器介面透過索引從 LinkedHashMap 獲取指定值。

方法

  • 首先,匯入“java.util”包,以便我們可以訪問 Map 的功能。

  • 然後,建立一個 LinkedHashMap,並使用內建方法“put()”儲存一些指定型別元素。

  • 定義一個迭代器,並將 LinkedHashMap 的值儲存到其中。

  • 現在,初始化一個計數器變數以迭代到所需的索引,以及另一個名為“value”的變數以儲存該索引的值。

  • 使用 while 迴圈從指定索引中提取值。

import java.util.*;
public class Example1 {
   public static void main(String[] args) {
      // Creating a LinkedHashMap 
      LinkedHashMap<String, Integer> LinkHmap = new LinkedHashMap<>();
      // storing elements to the map
      LinkHmap.put("TShirt", 59);
      LinkHmap.put("Trouser", 60);
      LinkHmap.put("Shirt", 45);
      LinkHmap.put("Watch", 230);
      LinkHmap.put("Shoes", 55);
      // to print all entries
      System.out.println("All entries from LinkedHashMap: " + LinkHmap);
      // Defining an iterator
      Iterator<Integer> iter = LinkHmap.values().iterator();
      // Initializing a counter
      int cntr = 0;
      // Initializing a variable for storing the value
      int value = 0;
      // iterating using while loop
      while (iter.hasNext() && cntr < 2) {
         // to get the next value and increment the counter
         value = iter.next();
           cntr++;
        }
        // Printing the result
        System.out.println("The value at index 2 from LinkedHashMap is: " + value);
    }
}

輸出

All entries from LinkedHashMap: {TShirt = 59, Trouser = 60, Shirt = 45, Watch = 230, Shoes = 55}
The value at index 2 from LinkedHashMap is: 60

示例 2

這是另一個 Java 程式,演示瞭如何使用 for-each 迴圈透過索引獲取 LinkedHashMap 的值。

方法

  • 遵循上一個示例的前兩個步驟。

  • 然後,初始化一個“index”變數以指定所需的索引。

  • 現在,使用一個 for-each 迴圈遍歷 LinkedHashMap 的鍵,並在每次迭代期間將索引加 1。

  • 當索引遞增到 3 時,if 塊將被執行並列印結果。

import java.util.*;
public class Example2 {
   public static void main(String[] args) {
      // Creating a LinkedHashMap 
      LinkedHashMap<String, Integer> LinkHmap = new LinkedHashMap<>();
      // storing elements to the map
      LinkHmap.put("TShirt", 59);
      LinkHmap.put("Trouser", 60);
      LinkHmap.put("Shirt", 45);
      LinkHmap.put("Watch", 230);
      LinkHmap.put("Shoes", 55);
      // to print all entries
      for (String unKey : LinkHmap.keySet()) {
         System.out.println("Item: " + unKey + ", Quantity: " + LinkHmap.get(unKey));
      }
      // Initializing the index
      int index = 0;
      // iterating using for-each loop
      for (String unKey : LinkHmap.keySet()) {
         index++; // incrementing the counter
         if(index == 3) { // printing the value at index 3
            System.out.println("The value at index 3 from LinkedHashMap is: " + LinkHmap.get(unKey)); 
         }
      }
   }
}

輸出

Item: TShirt, Quantity: 59
Item: Trouser, Quantity: 60
Item: Shirt, Quantity: 45
Item: Watch, Quantity: 230
Item: Shoes, Quantity: 55
The value at index 3 from LinkedHashMap is: 45

結論

我們從定義 Java LinkedHashMap 類開始本文,在下一節中,我們討論了兩種使用索引從 LinkedHashMap 中查詢值的方法。此外,我們還了解了如何建立 LinkedHashMap 集合。

更新於: 2023 年 7 月 20 日

546 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.