どうも、ちょげ(@chogetarou)です。
配列(Array)の要素をランダムに並び替えてシャッフルする方法を紹介します。
方法

配列(Array)の要素をランダムに並び替えてシャッフルする方法は、2つあります。
shuffle()
1つは、shuffle()を使う方法です。
具体的な方法としては、array.shuffle()
のように、配列からshuffle()を呼び出します。
array.shuffle()
上記のshuffle()は、呼び出した配列をランダムに並び替えます。
使用例
fun main() {
val numbers = arrayOf(1, 2, 3, 4, 5)
numbers.shuffle()
println(numbers.contentToString())
}
出力:
[4, 5, 3, 2, 1]
shuffled()
もう1つは、shuffled()
を使う方法です。
まず、配列からtoList()を呼び出します。
toList()からshuffled()を呼び出します。
そして、shuffled()の結果を配列に変換します。
val result : Array<T> = array.toList().shuffled().toTypedArray()
上記のtoTypedArray()
は、toList()を呼び出した配列(Array)をランダムに並び替えた新しい配列を返します。
使用例
fun main() {
val numbers = arrayOf(1, 2, 3, 4, 5)
val result : Array<Int> = numbers.toList().shuffled().toTypedArray()
println(numbers.contentToString())
println(result.contentToString())
}
出力:
[1, 2, 3, 4, 5]
[5, 3, 4, 2, 1]
まとめ
配列(Array)の要素をランダムに並び替えてシャッフルする方法は、次の2つです。
- shuffle()を使う方法
array.shuffle()
- shuffled()を使う方法
val result : Array<T> = array.toList().shuffled().toTypedArray()
コメント