Функция shuffled

Функция shuffled создает и возвращает новую коллекцию с элементами исходной коллекции, расположенными в случайном порядке. Исходная коллекция при этом не изменяется. Функция использует стандартный генератор случайных чисел для перемешивания элементов.

Импорт

kotlinimport kotlin.collections.shuffled

Синтаксис

kotlinfun <T> Array<out T>.shuffled(): List<T>
kotlinfun <T> Iterable<T>.shuffled(): List<T>
kotlinfun <K, V> Map<out K, V>.shuffled(): List<Pair<K, V>>
kotlinfun <T> Sequence<T>.shuffled(): Sequence<T>

Поддерживаемые типы коллекций

Функция shuffled работает со следующими типами коллекций:

Пример

Перемешаем элементы массива чисел:

kotlinval numbers = arrayOf(1, 2, 3, 4, 5)
val shuffledNumbers = numbers.shuffled()
println(shuffledNumbers)

Результат выполнения кода (может отличаться из-за случайности):

kotlinList<Int> [3, 1, 5, 2, 4]

Пример

Перемешаем элементы списка строк:

kotlinval letters = listOf('a', 'b', 'c', 'd', 'e')
val shuffledLetters = letters.shuffled()
println(shuffledLetters)

Результат выполнения кода (может отличаться из-за случайности):

kotlinList<Char> ['d', 'a', 'e', 'c', 'b']

Пример

Перемешаем элементы множества:

kotlinval set = setOf(10, 20, 30, 40, 50)
val shuffledSet = set.shuffled()
println(shuffledSet)

Результат выполнения кода (может отличаться из-за случайности):

kotlinList<Int> [40, 10, 50, 30, 20]

Пример

Перемешаем пары ключ-значение в ассоциативном массиве:

kotlinval map = mapOf("a" to 1, "b" to 2, "c" to 3)
val shuffledMap = map.shuffled()
println(shuffledMap)

Результат выполнения кода (может отличаться из-за случайности):

kotlinList<Pair<String, Int>> [(c, 3), (a, 1), (b, 2)]

Пример

Использование собственного генератора случайных чисел:

kotlinimport kotlin.random.Random

val numbers = listOf(1, 2, 3, 4, 5)
val random = Random(seed = 42)
val shuffledNumbers = numbers.shuffled(random)
println(shuffledNumbers)

Результат выполнения кода (будет одинаковым при одинаковом seed):

kotlinList<Int> [4, 2, 1, 3, 5]

Смотрите также

  • функцию shuffle,
    которая перемешивает элементы изменяемой коллекции на месте
  • функцию sorted,
    которая возвращает отсортированную коллекцию
  • функцию reversed,
    которая возвращает коллекцию с элементами в обратном порядке
  • функцию random,
    которая возвращает случайный элемент из коллекции