У меня есть простой код, который генерирует случайные числаКак быть уверенным, что случайные числа уникальны и не дублируются?
SecureRandom random = new SecureRandom();
...
public int getRandomNumber(int maxValue) {
return random.nextInt(maxValue);
}
Метод выше, называется примерно в 10 раз (не в цикле). Я хочу, чтобы все числа были уникальными (при условии, что maxValue > 1000
).
Могу ли я быть уверенным, что получаю уникальные номера каждый раз, когда я его называю? Если нет, как я могу это исправить?
EDIT: Возможно, я сказал это смутно. Я хотел избежать ручных проверок, если у меня действительно были уникальные номера, поэтому мне было интересно, есть ли лучшее решение.
Random! = Уникальный. На самом деле, как раз наоборот. –
Либо проверьте номера для предыдущего использования перед их выпуском, либо используйте случайный * случайный * случайный номер. Последний переполнен, если вы получаете только 10 номеров. Второй ответ Оли выше, хотя у вас есть две проблемы - случайность и уникальность. –
Отредактировал вопрос, чтобы прояснить терминологию уникальных vs random – skaffman