JAVA如何用TreeMap 去统计一个整数数组中 每个数出现的次数 并进行降序排序 求完整的代码

整数数组 是50个30-35的随机数
2024年11月18日 18:42
有2个网友回答
网友(1):

Map map = new HashMap();
Integer[] ks = new Integer[50];
Random rand = new Random();
for (int i = 0; i < ks.length; i++) {// 赋值50个随机数
ks[i] = rand.nextInt(6) + 30;
}
for (int i = 0; i < ks.length; i++) {// 统计个数
if (map.get(ks[i]) == null) {
map.put(ks[i], 1);
} else {
map.put(ks[i], map.get(ks[i]) + 1);
}
}
List list = new ArrayList(map.keySet());
Collections.sort(list);// 排序
Collections.reverse(list);// 降序排列
for (Integer num : list) {
System.out.println(num + " 个数: " + map.get(num));
}

网友(2):

import java.util.*;
public class Yugi {
    public static void main(String[] args) {
        Random random = new Random();
        TreeMap < Integer, Integer > map = new TreeMap < Integer, Integer > (new Comparator(){  
            public int compare(Integer o1, Integer o2) {  
                return o2.compareTo(o1);  
            }     
        });
        System.out.println("五十个数有:");
        for (int i = 0; i < 50; i++) {
            int n = random.nextInt(6) + 30;
            if (null == map.get(n)) {
                map.put(n, 1);
            } else {
                int x = map.get(n);
                map.put(n, x + 1);
            }
        }
        System.out.println(map);
    }
}