Java 按键排序LinkedHashMap
LinkedHashMap是一个通用类,用于实现Map接口。同时,它是HashMap类的子类,因此它可以使用所有方法并执行与HashMap类相似的操作。
Java提供了多种方式来排序LinkedHashMap,本文将学习如何通过键创建和排序它。
按键排序LinkedHashMap的程序
在直接跳转到排序程序之前,让我们先了解一些概念 –
LinkedHashMap
如前所述,LinkedHashMap类扩展HashMap类以实现Map接口。它维护键-值对。键是用于获取和接收与之相关联的值的对象。它以插入顺序存储映射的元素,即它保持元素的插入顺序。此外,每当我们返回它的元素时,它将按照插入顺序打印出来。
LinkedHashMap的一般语法如下 –
语法
LinkedHashMap< TypeOfKey, TypeOfValue > nameOfMap = new LinkedHashMap<>();
在上面的语法中,
TypeOfKey − 指定键的数据类型。
TypeOfValue − 指定要存储在映射中的值的数据类型。
nameOfMap − 为您的映射指定一个合适的名称。
树映射
这是一个用于实现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等等。