15-03-02(数字排序)

map排序

import java.util.*;
import java.util.Map.Entry;
public class Main{
    
    
public static void main(String[] args) {
    
    
	Scanner in = new Scanner(System.in);
	int n = in.nextInt();
	Map<Integer,Integer> map = new HashMap<Integer,Integer>();
	
//    Map<Integer, Integer> map = new TreeMap<Integer, Integer>(
//            new Comparator<Integer>() {
    
    
//                public int compare(Integer obj1, Integer obj2) {
    
    
//                    // 按key值  降序排序
//                    return obj2.compareTo(obj1);
//                }
//            });
//    
    
	for(int i =0;i<n;i++) {
    
    
		int t = in.nextInt();
		map.put(t,map.getOrDefault(t, 0)+1);
	}
	
	 //map 排序
	 // 根据value排序
    List<Map.Entry<Integer, Integer>> entryList = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
    Collections.sort(entryList, new Comparator<Map.Entry<Integer, Integer>>() {
    
    
		@Override
		public int compare(Entry<Integer, Integer> o1, Entry<Integer, Integer> o2) {
    
    
		    return o2.getValue().compareTo(o1.getValue()); // 降序排序
		}
    });

    //排序结果在entryList中 而不再原先的map中
    for(Map.Entry<Integer, Integer> temp : entryList) {
    
    
    	System.out.println(temp.getKey()+" "+temp.getValue());
    }
	}//main
}

猜你喜欢

转载自blog.csdn.net/qq_51985653/article/details/121592103