У нас есть требование перетасовать ArrayList с использованием семени
Код примерно такой:
List<String> tempList = new ArrayList<>()
//code to populdate the tempList
Random rng = new Random(2018);
Collections.shuffle(tempList, rng);
P.S. Причина, по которой мы предоставили статическое случайное начальное число, состоит в том, чтобы убедиться, что он всегда дает один и тот же результат после перетасовки.
Мы заметили, что результат перетасовки на машинах разработки (Mac) отличается от результата на наших машинах сборки (Linux).
Мне интересно, зависит ли сам этот метод от платформы?
Сведения о JDK Mac включен:
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
Сборка машины (мне нужно больше времени, чтобы узнать подробности, так как у меня нет доступа):
jdk1.8.0_162
Random
? Попробуйте сгенерировать несколько чисел, используяnextInt
, и посмотрите, отличаются ли последовательности. - person Zabuzard   schedule 06.08.2018new Random()
не будет одинаковым для всех вызовов программы. - person VGR   schedule 06.08.2018Random
разные последовательности. Если это так, то это ошибка алгоритмов перемешивания. В документации прямо указано, что все реализацииRandom
должны создавать одну и ту же последовательность. Если это не так, реализация не соответствует документации. - person Zabuzard   schedule 06.08.2018