java中数组的最大数目

java中数组的最大数目,java,arrays,random,max,Java,Arrays,Random,Max,我用一个数组创建了一个随机程序,里面有很多值和每个值的频率,我想让程序找出5个最频繁的数字,有什么方法可以做到吗? `这是我已经编写的代码。2个随机数组,2个频率,找出其中频率最高的5个数字: import java.util.Random; public class ArrayElementsAsCounters { public static void main(String[] args){ Random rand = new Random(); int freq[] =

我用一个数组创建了一个随机程序,里面有很多值和每个值的频率,我想让程序找出5个最频繁的数字,有什么方法可以做到吗? `这是我已经编写的代码。2个随机数组,2个频率,找出其中频率最高的5个数字:

import java.util.Random;
public class ArrayElementsAsCounters {
public static void main(String[] args){
    Random rand = new Random();
    int freq[] = new int[46];
    int freq2[] = new int[21];



    for(int roll=1; roll < 3000000;roll++){
        ++freq[1+rand.nextInt(45)];
        ++freq2[1+rand.nextInt(20)];
    }
    System.out.println("Number\tFrequency");

    for(int number1 =1; number1<freq.length;number1++){
        System.out.println(number1+"\t"+freq[number1]);
    }
    System.out.println("Joker\tFrequency");
    for(int number2 =1; number2<freq2.length;number2++){
        System.out.println(number2+"\t"+freq[number2]);
    }

}
}
`

看看多集:


您可以将所有元素添加到集合中,然后按计数进行排序。考虑到这个问题很广泛,我只是给出一些指导原则,我将把编码部分留给您做练习

对于您拥有的每个值,将它们作为另一个数组的元素

这将是元素的频率阵列

现在在原始数组中运行循环,每次遇到元素时,将一个元素添加到其频率数组值中

然后对频率数组进行降序排序,从最大值开始,打印出遇到的前五个