どうも、ちょげ(@chogetarou)です。
List(リスト)をランダムに並び替えてシャッフルする方法を紹介します。
方法

Listの場合
Listをランダムに並び替えてシャッフルするには、shuffled()を使います。
具体的には、list.shuffled()
のように、Listからshuffled()を呼び出します。
val result = list.shuffled()
shuffled()は、呼び出したListをランダムに並び替えた新しいListを返します。
使用例
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val result = numbers.shuffled()
println(numbers)
println(result)
}
出力:
[1, 2, 3, 4, 5]
[3, 4, 2, 1, 5]
MutableListの場合
MutableListをランダムに並び替えてシャッフルする方法は、2つあります。
shuffle()
1つは、shuffle()を使う方法です。
具体的な方法としては、list.shuffle()
のように、MutableListからshuffle()を呼び出します。
list.shuffle()
上記のshuffle()は、呼び出したmutableListをランダムに並び替えます。
使用例
fun main() {
val numbers = mutableListOf(1, 2, 3, 4, 5)
numbers.shuffle()
println(numbers)
}
出力:
[2, 1, 4, 5, 3]
shuffled()
もう1つは、shuffled()
を使う方法です。
まず、MutableListからshuffled()を呼び出します。
そして、shuffled()からtoMutableList()を呼び出します。
val result : MutableList<T> = list.shuffled().toMutableList()
上記のtoMutableList()
は、shuffled()を呼び出したMutableListをランダムに並び替えた新しいMutableListを返します。
使用例
fun main() {
val numbers = mutableListOf(1, 2, 3, 4, 5)
val result : MutableList<Int> = numbers.shuffled().toMutableList()
println(numbers)
println(result)
}
出力:
[1, 2, 3, 4, 5]
[2, 1, 5, 4, 3]
まとめ
Listをランダムに並び替えてシャッフルするには、shuffled()を使います。
val result = list.shuffled()
MutableListをランダムに並び替えてシャッフルには、次の2つの方法のいずれかを使います。
- shuffle()を使う方法
list.shuffle()
- shuffled()を使う方法
val result : MutableList<T> = list.shuffled().toMutableList()
コメント