Рандомизирующая строка в ArrayList

55
5

Мне нужно иметь возможность добавлять слова в мою игру Hangman, поэтому мои предыдущие массивы были созданы следующим образом:

Random random = new Random();
String[] word = {"iran","japan","canada","america","malaysia"};
randomword = word[random.nextInt(word.length)];

Проблема в том, что этот массив является фиксированным размером, поэтому я попытался использовать ArrayList:

ArrayList<String> word = new ArrayList<String>();
word.add("iran");
word.add("japan");
word.add("canada");
Random random = new Random();
randomword = word[random.nextInt(word.length)];

но это не сработало, ошибка (требуется массив, но найден массивList)

спросил(а) 2015-11-23T14:23:00+03:00 4 года назад
2
Решение
59

Элементы ArrayList извлекаются с использованием метода get(index), а вместо length используется метод size().

изменение

randomword = word[random.nextInt(word.length)];

в

randomword = word.get(random.nextInt(word.size()));

ответил(а) 2015-11-23T14:25:00+03:00 4 года назад
Еще 1 ответ
68

randomword = word[random.nextInt(word.length)]; в java нет синтаксиса, который позволяет использовать индекс с ArrayList, вместо этого используйте get().

ответил(а) 2015-11-23T14:25:00+03:00 4 года назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема