JAVA中hashmap怎么排序

avatar
作者
筋斗云
阅读量: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()遍历有序的键值对。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!