1. 给定Map,根据Map中的值从大到小排列

package com.studentmanager.www;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
public class Test12 {
    public static void main(String[] args) {
        Map<Integer,Integer> map = new TreeMap<Integer,Integer>();
        map.put(5, 3);
        map.put(6, 4);
        map.put(2, 2);
        map.put(1, 7);     
       //这里将map.entrySet()转换成list
        List<Map.Entry<Integer,Integer>> list = new ArrayList<Map.Entry<Integer,Integer>>(map.entrySet());
        //然后通过比较器来实现排序
        Collections.sort(list,new Comparator<Map.Entry<Integer,Integer>>() {
            public int compare(Entry<Integer,Integer> o1,
                    Entry<Integer,Integer> o2) {
//升序排序
//                return o1.getValue().compareTo(o2.getValue());
//降序排序
            	return o2.getValue().compareTo(o1.getValue());
            }
        });
        for(Map.Entry<Integer,Integer> mapping:list){ 
               System.out.println(mapping.getKey()+":"+mapping.getValue()); 
          } 
    }
}

 运行结果:

1:7
6:4
5:3
2:2

posted on 2017-09-24 21:53  牧羊人的世界  阅读(143)  评论(0编辑  收藏  举报