Java: методы генерации случайных уникальных чисел

Для генерации случайных уникальных чисел в Java можно использовать различные методы. Вот несколько подходов:

  1. Использование набора. Вы можете использовать структуру данных Set для хранения уникальных чисел. Генерируйте случайные числа и добавляйте их в набор, пока не будет достигнуто желаемое количество уникальных чисел.
Set<Integer> uniqueNumbers = new HashSet<>();
Random random = new Random();
while (uniqueNumbers.size() < desiredCount) {
    int randomNumber = random.nextInt(maxValue);
    uniqueNumbers.add(randomNumber);
}
// uniqueNumbers now contains the desiredCount of unique random numbers
  1. Использование списка и перетасовка: создайте список, содержащий все возможные числа, перетасуйте список, а затем выберите нужное количество элементов из перетасованного списка.
List<Integer> allNumbers = new ArrayList<>();
for (int i = 0; i < maxValue; i++) {
    allNumbers.add(i);
}
Collections.shuffle(allNumbers);
List<Integer> uniqueNumbers = allNumbers.subList(0, desiredCount);

<ол старт="3">

  • Использование алгоритма Фишера-Йейтса. Реализуйте алгоритм Фишера-Йейтса, чтобы перетасовать массив чисел, а затем выбрать нужное количество элементов из перетасованного массива.
  • int[] numbers = new int[maxValue];
    for (int i = 0; i < maxValue; i++) {
        numbers[i] = i;
    }
    Random random = new Random();
    for (int i = maxValue - 1; i > 0; i--) {
        int j = random.nextInt(i + 1);
        int temp = numbers[i];
        numbers[i] = numbers[j];
        numbers[j] = temp;
    }
    int[] uniqueNumbers = Arrays.copyOf(numbers, desiredCount);

    Это всего лишь несколько методов генерации случайных уникальных чисел в Java. Вы можете выбрать тот, который лучше всего соответствует вашим потребностям.