Основным исследованием в этой статье является соответствующее содержание метода collections.shuffle (). Давайте посмотрим на конкретный контент ниже.
Существует статический метод shuffle () в классе java.util.collections, следующим образом:
1) Статический void -shuffle (List <?> List) Используйте случайный источник по умолчанию, чтобы извращать список, и вероятность всех возникающих перестановки примерно равна.
2) Static Void Shuffle (List <?> List, Random Rand) выполняет указанный список, используя указанный случайный источник. Возможность всех перестановок примерно равна, предполагая, что случайный источник является справедливым.
Проще говоря, это похоже на перетасовку, случайным образом нарушает исходный порядок.
ПРИМЕЧАНИЕ. Если вам дают целочисленный массив, используйте метод Arrays.aslist (), чтобы преобразовать его в класс сбора, есть два способа:
1) Используйте список <Integer> list = arraylist (arrays.aslist (ia)) и используйте shuffle (), чтобы нарушить его, не изменит порядок базового массива.
2) Используйте список <Integer> list = arrays.aslist (ia), а затем используйте shuffle (), чтобы нарушить его, изменит порядок базового массива. Пример кода заключается в следующем:
Пакет ahu; импортировать java.util.*; public class modify {public static void main (string [] args) {случайный rand = new Random (47); integer [] ia = {0,1,2,3,4,5,6,7,8,9}; список <integer> sist = arraylist <integer> (arrays.aslist); shufflig: "+list); collections.shuffle (list, rand); system.out.println (" После перетасовки: "+list.out.println (" Array: "+Arrays.toString (ia)); List <Integer> list1 = Arrays.aslist (ia); System.out.println (" Перед Shuffling: Arrays.aslist (ia); System.out.println ("перед Shuffling: "+list1);; collections.shuffle (list1, rand); system.out.println (" после перетасовки: "+list1); system.out.println (" Array: "+Arrays.tostring (ia));}}Результаты работы следующие:
3, 9] After shuffling: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] After shuffling: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] After shuffling: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] After shuffling: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] After shuffling: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] после перетасовки: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] после перетасовки: [8, 0, 5, 2, 6, 1, 4, 9, 3, 7] после перетасовки: [8, 0, 5, 2, 1, 4, 9, 3, 7].
В первом случае вывод Arrays.aslist () передается конструктору ArrayList (), который создает ArrayList, который ссылается на элемент IA, поэтому нарушение этих ссылок не изменяет массив. Однако, если результат Arrays.aslist (IA) используется непосредственно, это нарушение изменит порядок IA. Важно понимать, что объект списка, созданный Arrays.aslist (), будет использовать базовый массив в качестве физической реализации. Пока действие, которое вы выполняете, изменит этот список, и вы не хотите, чтобы исходный массив был изменен, вы должны создать копию в другом контейнере.
Суммировать
Выше приведено все содержание этой статьи об анализе примера метода Collections.shuffle (), я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!