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

众所周知,Java中的Hash映射既不按键也不按顺序维护插入顺序,在向其添加条目时也不维护其他顺序。

但是Java提供了另一个名为TreeMap的API,该API保持其插入顺序根据其键的自然顺序进行排序。因此,为了根据键对给定的Hash映射进行排序,我们需要将映射插入树形映射,默认情况下根据插入后,我们将横穿同一棵树图进行排序,这是我们得到的排序图。

示例

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}