根据键值对对 Java 中的 HashMap 进行排序


众所周知,Java 中的散列图不按键值对或顺序维护插入顺序,在向散列图中添加条目时也不维护其他任何顺序。

但 Java 提供了另一个名为 TreeMap 的 API,它按照其键的自然顺序维护插入顺序。因此,为了对给定的散列表按键值对进行排序,我们将把散列表插入到TreeMap中,TreeMap默认按照键排序进行插入。在插入之后,我们将横向遍历排好序的同一个 TreeMap,它便是我们生成的有序散列表。

示例

 在线演示

import java.util.HashMap;
import java.util.TreeMap;
public class HashMapSortByKey {
   public static void main(String[] args) {
      HashMap<String,Integer> hMap = new HashMap<>();
      TreeMap<String,Integer> sortedMap = new TreeMap<>();
      hMap.put("Akshay",5);
      hMap.put("Veer",8);
      hMap.put("Guang",3);
      hMap.put("Bakshi",7);
      hMap.put("TomTom",2);
      hMap.put("Chang",10);
      hMap.put("Sandy",1);
      sortedMap = sortByKey(hMap);
      System.out.println(sortedMap);
   }
   public static TreeMap<String,Integer> sortByKey(HashMap<String,Integer> mapToSort) {
      TreeMap<String,Integer> sortedMap = new TreeMap<>();
      sortedMap.putAll(mapToSort);
      return sortedMap;
   }
}

输出

创建如下文本的 myCSV.csv 文件

{Akshay=5, Bakshi=7, Chang=10, Guang=3, Sandy=1, TomTom=2, Veer=8}

更新日期:2020-6-25

1 千次以上浏览

开始你的职业生涯

完成课程获得认证

开始
广告