Вопрос о массиве Java - PullRequest
       13

Вопрос о массиве Java

2 голосов
/ 02 марта 2011

Я сделал массив, но я запутался, как отображать содержимое массива на случайном генераторе.

например. Если в моем массиве четыре оператора, и когда я запускаю программу, я получаю номер 3, я бы хотел, чтобы она ссылалась на стат в массиве.

например. его следует распечатать: 3 - устроиться на работу

Я использую это для массива:

String[] activityName = new String[5];     
    activityName[1] = "Go and Have Fun";
    activityName[2] = "Hiya, Go Shooping";
    activityName[3] = "Get a job";
    activityName[4] = "Read a book";

И я использую этот код, чтобы вывести случайное число:

 Random generator = new Random();
    int n=5;
         int randomNumber = generator.nextInt( n );
    System.out.println(randomNumber);

Плюс я не хочу использовать 0 в генераторе.

Любая помощь будет оценена. Спасибо.

Ответы [ 5 ]

5 голосов
/ 02 марта 2011

всегда индексировать массивы в java из 0-индекса.Массивы в Java индексируются нулем.Вы можете просто добавить 1 к вашему сгенерированному randomNumber.Для получения имени активности см. Раздел ниже, который является безопасным, даже если вы удаляете / добавляете элементы в свой массив.

    String[] activityName = new String[4];     
    activityName[0] = "Go and Have Fun";
    activityName[1] = "Hiya, Go Shooping";
    activityName[2] = "Get a job";
    activityName[3] = "Read a book";

    Random generator = new Random();
    int randomNumber = generator.nextInt(activityName.length);
    System.out.println(activityName[randomNumber]);
2 голосов
/ 02 марта 2011

Если я правильно понимаю, то вы просто скажете:

System.out.println(activityName[randomNumber]);
0 голосов
/ 05 марта 2011

Учитывая, что вы не хотите использовать нулевой индекс, возможно, вам следует попробовать использовать HashMap.Ниже приведен пример кода, который генерирует 10 последовательных случайных выборов.

HashMap является частью платформы Java Collections Framework, которая предоставляет вам доступ к мощному набору методов.

Вы можете расширитьНапример, просто используя метод «put», чтобы добавить больше вариантов в hashmap.Этот пример полагается на добавление последовательных чисел из 1..x без пробелов.

HashMap<Integer, String> activityName = new HashMap<Integer, String>();
activityName.put(new Integer(1), "Go and Have Fun");
activityName.put(new Integer(2), "Hiya, Go Shooping");
activityName.put(new Integer(3), "Get a job");
activityName.put(new Integer(4), "Read a book");

Random generator = new Random();
int n=activityName.values().size();

int randomNumber;
for (int i = 0; i < 10; i++) {

    //nextInt() gets numbers from 0(included) to n(excluded), so need to add 1
    randomNumber = generator.nextInt(n) + 1;

    //Cast the retured Object to a string
    String activity = new String(activityName.get(new Integer(randomNumber)));
    System.out.println(randomNumber + " - " + activity);
}
0 голосов
/ 02 марта 2011

Я немного добавлю к ответу dmcnelis и скажу, что если вы действительно не хотите использовать 0-й индекс по какой-либо причине, вам следует сделать это ...

/* only select a random number in a range of 4 and add 1 to be sure it is > 0 */
int randomNumber = generator.nextInt( activityName.length - 1 ) + 1;
System.out.println(activityName[randomNumber]);
0 голосов
/ 02 марта 2011

Следующий код должен делать то, что вы ищете:

System.out.println(activityName[1 + new Random().nextInt(4)]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...