如何以数字方式然后按字母顺序排序哈希映射? 输入:
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));
}
答案 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());