【发布时间】:2014-11-12 01:00:46
【问题描述】:
我有一个这样的哈希图:
HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("java",4);
map.put("go",2);
map.put("objective-c",11);
map.put("c#",2);
现在我想按它的键长度对这个映射进行排序,如果两个键长度相等(例如 go 和 c# 都长度为 2),然后按 alphba 顺序排序。 所以我期望得到的结果是这样的:
打印结果: 目标-c,11 爪哇,4 时间,2 走吧,2
这是我自己的attamp,但它根本不起作用......
HashMap<String,Integer> map = new HashMap<String,Integer>();
map.put("java",4);
map.put("go",2);
map.put("objective-c",11);
map.put("c#",2);
Map<String,Integer> treeMap = new TreeMap<String, Integer>(
new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.length().compareTo(s2.length());
}
}
);
实际上 'compareTo' 方法显示为红色(无法编译).... 请有人帮我提供一些代码示例...我对如何使用比较器类来自定义比较对象有点困惑...
【问题讨论】:
标签: java sorting hashmap comparator treemap