НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
467 of 1310 menu

Функция shuffled

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

Импорт

import kotlin.collections.shuffled

Синтаксис

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

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

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

  • Array - массивы любых типов
  • List - неизменяемые списки
  • MutableList - изменяемые списки
  • Set - множества
  • Map - ассоциативные массивы (возвращает список пар ключ-значение)
  • Sequence - последовательности (возвращает последовательность)

Пример

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

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

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

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

Пример

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

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

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

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

Пример

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

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

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

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

Пример

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

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

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

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

Пример

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

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

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

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

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

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