Метод Collections.shuffle() в Java с примерами

Опубликовано: 15 Сентября, 2022

Метод shuffle() класса Collections, как следует из названия класса, присутствует в служебном пакете, известном как java.util , который перемешивает элементы в списке.

Есть два способа , которые мы можем использовать для реализации в наших программах, а именно:

  1. Использование предопределенного источника случайности
  2. Использование предоставленного пользователем источника случайности

Способ 1: Перетасовка заданного списка с использованием заранее определенного источника случайности.

Синтаксис:

public static void shuffle(List mylist)

Вызвано исключение: UnsupportedOperationException выдается, если данный список или его итератор списка не поддерживает операцию установки.

Пример:


Способ 2: Перетасовка заданного списка с использованием предоставленного пользователем источника случайности.

Здесь предоставляется дополнительный параметр, указанный выше « rndm» , который является источником случайности для перемешивания списка.

Синтаксис:

public static void shuffle(List mylist, Random rndm)

Параметры: здесь требуется два параметра, как указано

  • Список
  • Источник случайности

Исключения: UnsupportedOperationException , если указанный список или его итератор списка не поддерживает операцию установки.

Пример:

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

  • Внутренняя работа: этот метод случайным образом переставляет элементы в списке.
  • Время выполнения: работает в линейное время.
  • Доступ к элементам:
    • Он перемещается по списку в обратном направлении, от последнего элемента до второго, неоднократно заменяя случайно выбранный элемент на его «текущую позицию».
    • После этого элементы случайным образом выбираются из той части списка, которая начинается от первого элемента до текущей позиции включительно.

Note: If the provided list does not implement the RandomAccess interface, like LinkedList, and is large, it first copies the list into an array, then shuffles the array copy, and finally copies the array back into the list. This makes sure that the time remains linear.

Эта статья предоставлена Мохитом Гуптой . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по адресу review-team@geeksforgeeks.org. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.