如何在 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