JAVA中hashmap怎么排序

1190
2023/12/25 13:55:14
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Java中,HashMap是一个无序的集合,它不会按照特定的顺序存储键值对。如果你想对HashMap中的元素进行排序,可以将其转换为一个有序的集合,例如TreeMap。

TreeMap是基于红黑树实现的有序映射,它会根据键的自然顺序或者自定义的Comparator进行排序。下面是一个使用Comparator对HashMap按照键进行排序的示例:

import java.util.*;

public class SortHashMap {
    public static void main(String[] args) {
        HashMap<String, Integer> hashMap = new HashMap<>();
        hashMap.put("Tom", 30);
        hashMap.put("Alice", 25);
        hashMap.put("Bob", 35);
        hashMap.put("John", 40);

        TreeMap<String, Integer> sortedMap = new TreeMap<>(new Comparator<String>() {
            public int compare(String s1, String s2) {
                return s1.compareTo(s2); // 按照键的自然顺序排序
            }
        });
        sortedMap.putAll(hashMap);

        for (Map.Entry<String, Integer> entry : sortedMap.entrySet()) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

输出结果:

Alice: 25
Bob: 35
John: 40
Tom: 30

在这个示例中,我们首先创建一个HashMap并添加一些键值对。然后,我们创建一个TreeMap,并传入一个自定义的Comparator,该Comparator会根据键的自然顺序进行比较。最后,我们使用putAll()方法将HashMap中的元素放入TreeMap,并使用entrySet()遍历有序的键值对。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: java中的mapper注解怎么使用