Функция shuffle

Функция shuffle выполняет случайное перемешивание элементов в изменяемых коллекциях. Функция изменяет исходную коллекцию, переставляя её элементы в случайном порядке. Работает только с изменяемыми коллекциями: MutableList, Array, MutableSet и другими изменяемыми реализациями.

Импорт

kotlinimport kotlin.collections.shuffle

Синтаксис

kotlinfun <T> Array<T>.shuffle(): Unit
fun <T> MutableList<T>.shuffle(): Unit
fun ByteArray.shuffle(): Unit
fun ShortArray.shuffle(): Unit
fun IntArray.shuffle(): Unit
fun LongArray.shuffle(): Unit
fun FloatArray.shuffle(): Unit
fun DoubleArray.shuffle(): Unit
fun BooleanArray.shuffle(): Unit
fun CharArray.shuffle(): Unit

Пример

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

kotlinval numbers = mutableListOf(1, 2, 3, 4, 5)
println("Before: $numbers")

numbers.shuffle()
println("After: $numbers")

Результат выполнения кода:

kotlinBefore: [1, 2, 3, 4, 5]
After: [3, 1, 5, 2, 4]

Пример

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

kotlinval chars = arrayOf('a', 'b', 'c', 'd', 'e')
println("Before: ${chars.contentToString()}")

chars.shuffle()
println("After: ${chars.contentToString()}")

Результат выполнения кода:

kotlinBefore: ['a', 'b', 'c', 'd', 'e']
After: ['c', 'e', 'a', 'd', 'b']

Пример

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

kotlinval intArray = intArrayOf(10, 20, 30, 40, 50)
println("Before: ${intArray.contentToString()}")

intArray.shuffle()
println("After: ${intArray.contentToString()}")

Результат выполнения кода:

kotlinBefore: [10, 20, 30, 40, 50]
After: [30, 10, 50, 20, 40]

Для каких типов коллекций работает

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

Не работает с:

Пример

Попытка использовать shuffle на неизменяемом списке вызовет ошибку компиляции:

kotlinval immutableList = listOf(1, 2, 3, 4, 5)
immutableList.shuffle() // Ошибка: Unresolved reference: shuffle

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

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