Функция shuffle
Функция shuffle выполняет случайное перемешивание элементов
в изменяемых коллекциях. Функция изменяет исходную коллекцию,
переставляя её элементы в случайном порядке. Работает только
с изменяемыми коллекциями: MutableList, Array,
MutableSet и другими изменяемыми реализациями.
Импорт
import kotlin.collections.shuffle
Синтаксис
fun <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
Пример
Перемешаем элементы изменяемого списка:
val numbers = mutableListOf(1, 2, 3, 4, 5)
println("Before: $numbers")
numbers.shuffle()
println("After: $numbers")
Результат выполнения кода:
Before: [1, 2, 3, 4, 5]
After: [3, 1, 5, 2, 4]
Пример
Перемешаем элементы массива:
val chars = arrayOf('a', 'b', 'c', 'd', 'e')
println("Before: ${chars.contentToString()}")
chars.shuffle()
println("After: ${chars.contentToString()}")
Результат выполнения кода:
Before: ['a', 'b', 'c', 'd', 'e']
After: ['c', 'e', 'a', 'd', 'b']
Пример
Перемешаем элементы числового массива:
val intArray = intArrayOf(10, 20, 30, 40, 50)
println("Before: ${intArray.contentToString()}")
intArray.shuffle()
println("After: ${intArray.contentToString()}")
Результат выполнения кода:
Before: [10, 20, 30, 40, 50]
After: [30, 10, 50, 20, 40]
Для каких типов коллекций работает
Функция shuffle работает со следующими типами коллекций:
Array- обычные массивыMutableList- изменяемые спискиMutableSet- изменяемые множестваIntArray,DoubleArray,CharArrayи другие примитивные массивы
Не работает с:
List- неизменяемые спискиSet- неизменяемые множестваMapиMutableMap- отображенияSequence- последовательности
Пример
Попытка использовать shuffle на неизменяемом списке
вызовет ошибку компиляции:
val immutableList = listOf(1, 2, 3, 4, 5)
immutableList.shuffle() // Ошибка: Unresolved reference: shuffle