Java中LinkedHashMap按键排序


LinkedHashMap是一个泛型类,用于实现Map接口。它也是HashMap类的子类,因此可以使用所有方法并执行HashMap类能够执行的类似操作。

Java提供了多种排序LinkedHashMap的方法,本文将学习如何创建并通过其键对其进行排序。

按键排序LinkedHashMap的程序

在直接跳转到排序程序之前,让我们先了解一些概念:

LinkedHashMap

正如我们前面所讨论的,LinkedHashMap类扩展了HashMap类以实现Map接口。它维护键值对。键是一个用于获取和接收与其关联的值的对象。它按插入顺序将映射的元素存储在LinkedList中,即它维护元素的插入顺序。此外,每当我们返回其元素时,它都将按插入顺序打印。

LinkedHashMap的一般语法如下:

语法

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

在上述语法中:

TypeOfKey - 指定键的数据类型。

TypeOfValue - 指定将存储在映射中的值的数据类型。

nameOfMap - 为您的映射提供一个合适的名称。

TreeMap

它是一个用于实现NavigableMap接口的类。它将映射的元素存储在树结构中。要对LinkedHashMap元素进行排序,我们需要使用此类。最明显的原因是它提供了一种有效的替代方法,可以按排序顺序存储键值对。

TreeMap的一般语法如下:

语法

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

要对LinkedHashMap的元素进行排序,我们还需要这些方法:

  • put() - 它接受两个参数,一个用于键,另一个用于其值,然后将其插入到指定的映射中。

  • get() - 它返回与指定键关联的值。

  • keySet() - 它返回指定映射的键集。

  • putAll() - 它接受一个参数并将它的元素复制到新的指定映射中。

算法

  • 步骤1 - 创建名为“workers”的LinkedHashMap对象,并使用“put()”方法将元素插入其中。

  • 步骤2 - 现在,定义名为“SrtMap”的TreeMap来存储映射“workers”的排序元素。

  • 步骤3 - 最后,使用for each循环遍历排序后的TreeMap“SrtMap”。在此循环内,使用“keySet()”方法检索值。

示例

import java.util.*;
public class Srt {
   public static void main(String[] args) {
      LinkedHashMap<String, Integer> workers = new LinkedHashMap<>();
      // Adding elements in the workers map
      workers.put("Vaibhav", 4000);
      workers.put("Ansh", 3000);
      workers.put("Vivek", 1500);
      workers.put("Aman", 2000);
      workers.put("Tapas", 2500);
      // printing details workers map in unsorted order
      System.out.println("Elements of the map: ");
      for (String unKey : workers.keySet()) {
         System.out.println("Name: " + unKey + ", Salary: " + workers.get(unKey));
      }
      // create new tree map
      TreeMap<String, Integer> SrtMap = new TreeMap<>();
      // adding workers map details to new tree map
      SrtMap.putAll(workers); 
      // printing details workers map in sorted order
      System.out.println("Elements of the newly sorted map: ");
      for (String srtKey : SrtMap.keySet()) {
         System.out.println("Name: " + srtKey + ", Salary: " + workers.get(srtKey));
      }
   }
} 

输出

Elements of the map: 
Name: Vaibhav, Salary: 4000
Name: Ansh, Salary: 3000
Name: Vivek, Salary: 1500
Name: Aman, Salary: 2000
Name: Tapas, Salary: 2500
Elements of the newly sorted map: 
Name: Aman, Salary: 2000
Name: Ansh, Salary: 3000
Name: Tapas, Salary: 2500
Name: Vaibhav, Salary: 4000
Name: Vivek, Salary: 1500

结论

在本文中,我们创建了一个LinkedHashMap,并通过TreeMap按键对其进行了排序。我们还了解了Map接口的一些内置方法的使用,例如put、putAll、get等等。

更新于:2023年5月15日

871 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告