【发布时间】:2019-04-29 01:53:33
【问题描述】:
项目描述是创建一个包含 1000 个从 1-50 的随机数字组成的数组,并按频率显示 10 个最高的数字。我减少了代码中的数字以便于测试。
我用随机数字创建了数组,并显示了每个数字出现的次数。
我无法弄清楚如何将数字从最高到最低排序。
任何帮助将不胜感激。
import java.util.*; //import random class and arrays
class MaxArray{
public static void main(String[]args){
Random rand = new Random(1); //create random object and sets seed to one
int[] randArray = new int [51];
int[] newArray = new int[51];
for(int i = 0; i < randArray.length; i++){
randArray[i] = rand.nextInt(50) + 1; // returns a single random integer between 1 and 50
}
Arrays.sort(randArray);
System.out.println(Arrays.toString(randArray));
for(int j = 0; j < randArray.length; j++){
newArray[randArray[j]] += 1;
}
System.out.println(Arrays.toString(newArray));
for(int k = 0; k < newArray.length; k++){
System.out.println("Number " + k + " occurred " + newArray[k] + " times");
}
}// end main
}//end class
【问题讨论】:
-
如果您只是想对整数进行排序,请在您的代码中实现此答案:stackoverflow.com/questions/7787754/…
-
“遇到麻烦”没有提供足够的信息来提供帮助。请参阅关于如何提问的 SO 常见问题解答:您至少应该花时间尽可能准确地描述“问题”。
-
为什么需要将数字从高到低排序?
-
仅供参考,您的第二个 for 循环(包含
newArray[randArray[j]] += 1;)已经在为您的randArray进行排序,我们称之为桶排序。
标签: java arrays sorting frequency