众所周知,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}