Как сделать генератор уникальных чисел? [дубликат]

299
14 мая 2017, 22:38

На данный вопрос уже ответили:

  • Получение массива чисел от 1 до 4 в случайном порядке 5 ответов

Здравствуйте. У меня есть

ArrayList myArray = new ArrayList();
Random r = new Random();
for (int i =  0; i < 10; i++){
    myArray.add(r.nextInt(10) + 1);
}

Но он заполняет ArrayList любыми числами, а мне надо, чтобы он делал каждое число уникальным (без повторений), и в случайном порядке их раскидывал. Спасибо за помощь!

Answer 1

Чтобы сделать проще то, что вы хотите, познакомьтесь с этим: Множества: Set, HashSet, LinkedHashSet, TreeSet.

На вашем примере:

Random random = new Random();
Set<Integer> numberSet = new HashSet<>();
for (int i = 0; i < 10; i++) {
    numberSet.add(random.nextInt(10) + 1);
}

Повторяющихся элементов не будет.

Answer 2

Тогда нужно random permutation, Случайные перестановки

Если по простому, то берем первый элемент и меняем местами с любым другим, потом берем второй и меняем местами с любым кроме первого и так до конца

Само собой сначала нужно заполнить массив значениями, например

myArray.add(i)
READ ALSO
Autowired NullPointerException

Autowired NullPointerException

Я только разбираюсь со спрингом, поэтому не совсем понимаю как работаетИтак я сделал все как в туториале firstapp и все работает

376
MediaView налазит туда, куда не должна

MediaView налазит туда, куда не должна

Доброго времени сутокПрошу объяснить, что я сделал не так и как это исправить

204
произвольное движение окна java программы на netbeans

произвольное движение окна java программы на netbeans

Необходимо создать приложение, окно которого двигалось бы по экрану

209
Как из BufferedImage - перевести картинку в пиксели?

Как из BufferedImage - перевести картинку в пиксели?

как из BufferedImage - перевести картинку в пиксели?

216