如何在 Java Map 中查找具有最大值的 Entry


在 Java 中,Map 是一个以键值对存储元素的对象。键是一个用于获取和接收与其关联的值的对象。键必须是唯一的,但与其关联的值可能会重复,具体取决于我们使用的 Map 类类型。

有几种方法可以在 Java Map 中查找具有最大键的条目,这些方法也取决于我们正在使用的 Map 类类型。在本文中,我们将讨论如何在 HashMap 和 TreeMap 类中查找具有最大键的条目。

Java 程序用于查找 Map 中具有最大键的条目

在本节中,我们将讨论 HashMap 和 TreeMap 类的基础知识以及获取具有最大键条目的示例程序。

HashMap 类

它是一个实现 Map 接口的泛型类,因此它可以访问该接口的所有方法。请注意,它本身没有任何额外的方法。不允许重复值,但是,我们可以存储空值和键。在存储映射时使用哈希表。

HashMap 的通用语法如下

语法

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

示例 1

以下示例说明了如何在 Java HashMap 中获取具有最大键的条目。

方法

  • 我们的第一步是导入“java.util”的必要包,以便我们可以访问 Map 的功能。

  • 然后,定义一个 HashMap 并使用内置方法“put()”存储一些指定类型的元素。

  • 初始化两个变量以存储最大键的条目。

  • 现在,在 for-each 循环内使用内置方法“entrySet()”逐个检索 HashMap 的条目,然后使用 if 块获取最大条目。

  • 最后,打印结果并退出。

import java.util.Map;
import java.util.HashMap;
public class LargestKey {
   public static void main(String[] args) {
      // Creating a HashMap 
      Map<Integer, Integer> cart = new HashMap<>();
      // Adding elements in the cart map
      cart.put(10, 400);
      cart.put(20, 300);
      cart.put(30, 150);
      cart.put(40, 200);
      cart.put(50, 250);
      // printing all the elements of cart map 
      System.out.println("All elements in the map: " + cart);
      // variables to store the largest key and its value
      int largestKey = 0;
      int largestValue = 0;
      // Loop over all the entries in the Map
      for (Map.Entry<Integer, Integer> entry : cart.entrySet()) {
         // Get the key and value of the current entry
         int key = entry.getKey();
         int value = entry.getValue();
         // Comparing current key with the current largest key
         if (key > largestKey) {
            // Update the largest key and its value
            largestKey = key;
            largestValue = value;
         }
      }
      // Printing the entry with the largest key 
      System.out.println("The entry with the largest key is: [ Quantity: " + largestKey + ", Price: " + largestValue + "]");
   }
}

输出

All elements in the map: {50=250, 20=300, 40=200, 10=400, 30=150}
The entry with the largest key is: [ Quantity: 50, Price: 250]

TreeMap 类

它是 Java 集合框架的一个类,它实现了 NavigableMap 接口。它以树形结构存储映射的元素,从而提供了一种高效的替代方案,以排序的方式存储键值对。

TreeMap 的通用语法如下

语法

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

示例 2

以下示例演示了如何在 Java TreeMap 中获取具有最大键的条目。

方法

  • 首先,导入“java.util”所需的包。

  • 然后,创建一个 TreeMap 并使用内置方法“put()”存储一些指定类型的元素。

  • 如前所述,TreeMap 以排序的方式存储其元素,因此最后一个条目将是最大的。因此,使用内置方法“lastEntry()”存储最大键的条目。

  • 现在,从条目中检索最大键及其对应的值。

  • 最后,打印结果并退出。

import java.util.Map;
import java.util.TreeMap;
public class LargestKey {
   public static void main(String[] args) {
      // Creating a TreeMap
      TreeMap<Integer, Integer> cart = new TreeMap<>();
      // Adding elements in the cart map
      cart.put(10, 400);
      cart.put(20, 300);
      cart.put(30, 150);
      cart.put(40, 200);
      cart.put(50, 250);
      // printing all the elements of cart map 
      System.out.println("All elements in the map: " + cart);
      // Getting the last entry in the cart map
      Map.Entry<Integer, Integer> entry = cart.lastEntry();
      // Get the key and value of the entry
      int largestKey = entry.getKey();
      int largestValue = entry.getValue();
      // Printing the entry with the largest key
      System.out.println("The entry with the largest key is: [ Quantity: " + largestKey + ", Price: " + largestValue + "]");
   }
}

输出

All elements in the map: {10=400, 20=300, 30=150, 40=200, 50=250}
The entry with the largest key is: [ Quantity: 50, Price: 250]

结论

我们从定义 Java Map 开始本文,在下一节中,我们讨论了两种从 Java Map 中查找具有最大键的条目方法。此外,我们还了解了一些 Map 类(如 HashMap 和 TreeMap)的基础知识。

更新于:2023 年 7 月 20 日

2K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告