Map进行排序 用Comparable
Posted 1306962984wei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map进行排序 用Comparable相关的知识,希望对你有一定的参考价值。
比较的接口Comparable,提供了一个比较的方法,所有实现该接口的类,都动态的实现了该比较方法。实际上Java中除了比较一个接口外,还提供了一个接口,该接口也是具有比较的功能,但该接口注重的却是比较容器,然后对其排序,这就是Comparator
Map<String,Integer> map = new HashMap<String,Integer>();
map.put("c", 3);
map.put("d", 2);
map.put("e", 1);
map.put("b", 2);
// System.out.println(map.get("am"));
List li = new ArrayList();
// System.out.println(map.entrySet());
List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
// 排序
// for (int i = 0; i < infoIds.size(); i++) {
// System.out.println(infoIds.get(i));
// }
//
//Comparator
Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return (o2.getValue() - o1.getValue()); //正数是升序,负数是降序 这里是根据map的值进行排序
// return (o2.getKey()).toString().compareTo(o1.getKey());
}
});
// 排序后
for (int i = 0; i < infoIds.size(); i++) {
String id = infoIds.get(i).toString();
//System.out.println(id);
String[] ss = id.split("=");
System.out.println(ss[0] + ":" + ss[1] + "分钟");
}
以上是关于Map进行排序 用Comparable的主要内容,如果未能解决你的问题,请参考以下文章
如何对 Map<LocalDate, Integer> 进行排序? [复制]