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