У меня возникли проблемы с некоторым кодом, который я должен был написать для своего курса.Отображение генератора случайных чисел Java
Мне пришлось написать генератор случайных чисел, который запускается через цифры от одного до пятидесяти, десяти тысяч раз, а затем распечатывает только 15 самых высоких номеров. Мне удалось сделать все правильно, кроме как распечатать верхние 15 наивысших.
Вот мой полный блок кода
package section4;
import java.util.Random;
public class Lottery {
public static void main(String[] args) {
Random rand = new Random();
int freq[] = new int[51];
for(int roll = 1; roll<1000000;roll++){
++freq[1+rand.nextInt(50)];
}
System.out.println("Lottery Number\tFrequency");
for(int face = 0; face<freq.length ;face++){
System.out.println(face+"\t"+freq[face]);
}
}
}
Я попытался с помощью ArrayList.
Сначала я создал ArrayList, а затем добавил лицо и freq [лицо] в arraylist, а затем напечатал элементы ArrayList. Я устал от этого с небольшим шансом, и, как я думал, я ошибся.
package section4;
import java.util.ArrayList;
import java.util.Random;
public class Lottery {
public static void main(String[] args) {
Random rand = new Random();
int freq[] = new int[51];
ArrayList<Integer> top = new ArrayList<Integer>(15);
for(int roll = 1; roll<1000000;roll++){
++freq[1+rand.nextInt(50)];
}
System.out.println("Lottery Number\tFrequency");
for(int face = 0; face<freq.length ;face++){
top.add(face);
top.add(freq[face]);
System.out.println(top);
}
}
}
И я также попытался изменить «Для заявления», но я также знал, что изменить его на то, что я всего лишь говорит компилятору бежать от 0 - 15, а не полный 50.
for(int face = 0; face< 15 ;face++){}
Может ли кто-нибудь помочь, как я могу распечатать только 15 наивысших баллов, поскольку я застрял на этом в течение нескольких дней.
используйте «Map» и свяжите каждое число с тем, сколько раз оно происходит. –
SJuan76