[Kotlin]mutableListを逆順にするには?

Kotlin

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

mutableListを逆順にする方法を紹介します。

スポンサーリンク

方法

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

mutableListを逆順にする方法は、3つあります。

reverse()

1つ目は、reverse()を使う方法です。

具体的には、list.reverse()のように、mutableListからreverse()を呼び出します。

list.reverse()

reverse()は、呼び出したmutableListを逆順にします。

使用例

fun main() {
    val numbers = mutableListOf(1, 2, 3, 4, 5)
    
    numbers.reverse()
    
    println(numbers)
}
出力:
[5, 4, 3, 2, 1]

reversed()

2つ目は、reversed()を使う方法です。

まず、mutableListからreversed()関数を呼び出します。

そして、reversed()関数からtoMutableList()を呼び出します。

val result : MutableList<Int> = list.reversed().toMutableList()

上記のtoMutableList()は、reversed()を呼び出したmutableListを逆順にしたmutableListを返します。

使用例

fun main() {
    val numbers = mutableListOf(1, 2, 3, 4, 5)
    
    val result : MutableList<Int> = numbers.reversed().toMutableList()
    
    println(numbers)
    println(result)
}
出力:
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]

asReversed()

3つ目は、asReversed()を使う方法です。

具体的には、list.asReversed()のように、mutableListからasReversed()を呼び出します。

val result : MutableList<Int> = list.asReversed()

上記のasReversed()は、呼び出したmutableListを反転したmutableListを返します。

asReversed()とreversed()の違いは、オリジナルのリストの影響を受けるかです。

reversed()で生成した逆順のリストは、オリジナルのリストに変更があっても、影響を受けません。

asReversed()で生成した逆順のリストは、オリジナルのリストに変更があった場合、オリジナルのリストの変更を反映します。

使用例

fun main() {
    val numbers = mutableListOf(1, 2, 3, 4, 5)
    
    val result : MutableList<Int> = numbers.asReversed()
    
    println("変更前:")
    println(numbers)
    println(result)
    
    
    numbers[0] = 10
    numbers[3] = 100
    
    println("\nオリジナルの変更後:")
    println(numbers)
    println(result)
}
出力:
変更前:
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]

オリジナルの変更後:
[10, 2, 3, 100, 5]
[5, 100, 3, 2, 10]

まとめ

mutableListを逆順にする方法は、次の3つです。

  • reverse()を使う方法
    list.reverse()
  • reversed()を使う方法
    val result : MutableList<Int> = list.reversed().toMutableList()
  • asReversed()を使う方法
    val result : MutableList<Int> = list.asReversed()

コメント

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