[Kotlin]List(リスト)をランダムに並び替えるには?

Kotlin

どうも、ちょげ(@chogetarou)です。

List(リスト)をランダムに並び替えてシャッフルする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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を返します。

もし、shuffled()の結果を通常のListとして取得したい場合は、toMutableList()を省略します。

//結果を通常のListとして取得
val result : List<T> = list.shuffled()

使用例

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()

コメント

タイトルとURLをコピーしました