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
}