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] + "分钟");
}

 

上一篇:数据结构():排序算法


下一篇:Java中的多态