Я создаю метод, в котором, если вы передадите параметр типа Random, он вернет случайный объект. Вот в основном то, что я пытаюсь сделать:
public T choose(Random r) {
int randomInt = r.nextInt(randomList.size()); // randomList is just a instance variable
return randomList.get(randomInt);
}
В случайном списке есть следующие строки: [2, 2, 2, 1, 1, 1, 1, c, c, c, a, a, a, a]
Затем я сделал драйвер со следующим кодом
for (int i = 0; i < 10; i++) {
System.out.print(rndList.choose(rnd)); // rnd is initialized as a static Random variable
}
Однако мои выводы не выходят случайными. Я использовал отладчик и обнаружил, что мой метод выбора генерирует целое число, которое относительно мало, поэтому он всегда будет печатать 2 или 1, но никогда не с или с. Я не могу понять, почему это происходит, и помощь будет принята с благодарностью.
РЕДАКТИРОВАТЬ: проблема была решена. Я упустил много деталей, но когда я вызвал метод size (), я переписал это, и в нем была ошибка, которая возвращала меньшее число, чем мне бы хотелось. Спасибо dtech за то, что заметил мою глупую ошибку. Спасибо всем, кто пытался мне помочь!