如何在 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 集合。
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP