如何使用Java中的值和键对哈希映射表进行排序

时间:2014-04-02 02:51:42

标签: java sorting hashmap

如何以数字方式然后按字母顺序排序哈希映射? 输入:

anna , 1
jane , 2
amy  , 3

必需的输出:

amy  , 3
anna , 1
jane , 2

Map<String, Integer> myDictionary = new HashMap<String, Integer>();

这就是我如何解决它的问题,但它只是按字母顺序排序

Set<String> sorted = new TreeSet<String>(); 

sorted.addAll(myDictionary.keySet());

for(String key: sorted){

    System.out.println(key  + " -" + myDictionary.get(key));

}

2 个答案:

答案 0 :(得分:0)

您可以将Map转换为List,按比较器对List进行排序,并将排序后的列表放回Map。

请查看此参考资料Sort a Map by Values

答案 1 :(得分:0)

以下是您可能希望如何使用

的草图
class Person 
{
   public String name;
   public int point;
   //others methods
}
class SortName implements Comparator<Person>
{
   public int compare(Person one, Person two)
   {return comparison of name}
}

class SortPoint implements Comparator<Person>
{
   public int compare(Person one, Person two)
   {return comparison of point}
}

//usage
List.sort(person, new SortName());