[Kotlin]MutableList(ミュータブルリスト)をソートするには?

Kotlin

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

MutableList(ミュータブルリスト)を並び替えてソートする方法を紹介します。

スポンサーリンク

昇順

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

MutableList(ミュータブルリスト)を昇順にソートする方法は、4つあります。

sort()

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

具体的な方法としては、「list.sort()」のように、ドットでMutableListからsort()を呼び出します。

//list=対象のMutableList
list.sort()

上記のsort()は、呼び出したMutableList(ミュータブルリスト)を昇順に並び替えます。

使用例

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

sorted()

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

具体的な方法としては、「list.sorted()」のように、ドットでMutableListからsorted()を呼び出します。

//list=対象のMutableList
val result: List<T> = list.sorted()

上記のsorted()は、呼び出したMutableList(ミュータブルリスト)を昇順に並び替えたListを生成します。

また、sorted()は、呼び出したMutableListに影響を与えません。

使用例

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

sortBy()

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

まず、MutableListからsortBy{}を呼び出します。

そして、sortBy{}のクロージャー内に、比較する値を指定します。

//list=対象のMutableList, {}内に並び替える際、比較する値を指定
list.sortBy { it }

上記のsortBy{}は、呼び出したMutableList(ミュータブルリスト)を比較する値で昇順に並び替えたListを生成します。

sortBy{}のクロージャー内では、MutableListの要素を「it」で取得します。

使用例

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

sortedBy()

4つ目は、sortedBy()を使う方法です。

まず、MutableListからsortedBy{}を呼び出します。

そして、sortedBy{}のクロージャー内に、比較する値を指定します。

//list=対象のMutableList, {}内に並び替える際、比較する値を指定
val result: List<T> = list.sortedBy { it }

上記のsortedBy{}は、呼び出したMutableList(ミュータブルリスト)を比較する値で昇順に並び替えます。

sortedBy{}のクロージャー内では、MutableListの要素を「it」で取得します。

使用例

fun main() {
    val list = mutableListOf("DEF", "A", "GHIJ","BC")
    
    val result: List<String> = list.sortedBy { it.length }
    
    println(result)
}
出力:
[A, BC, DEF, GHIJ]
スポンサーリンク

降順

MutableList(ミュータブルリスト)を降順にソートする方法は、4つあります。

sortDescending()

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

具体的な方法としては、「list.sortDescending()」のように、ドットでMutableListからsortDescending()を呼び出します。

//list=対象のMutableList
list.sortDescending()

上記のsortDescending()は、呼び出したMutableList(ミュータブルリスト)を降順に並び替えます。

使用例

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

sortedDescending()

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

具体的な方法としては、「list.sortedDescending()」のように、ドットでMutableListからsortedDescending()を呼び出します。

//list=対象のMutableList
val result: List<T> = list.sortedDescending()

上記のsortedDescending()は、呼び出したMutableList(ミュータブルリスト)を降順に並び替えたListを生成します。

また、sortedDescending()は、呼び出したMutableListに影響を与えません。

使用例

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

sortByDescending()

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

まず、MutableListからsortByDescending{}を呼び出します。

そして、sortByDescending{}のクロージャー内に、比較する値を指定します。

//list=対象のMutableList, {}内に並び替える際、比較する値を指定
list.sortByDescending { it }

上記のsortByDescending{}は、呼び出したMutableList(ミュータブルリスト)を比較する値で降順に並び替えます。

sortByDescending{}のクロージャー内では、MutableListの要素を「it」で取得します。

使用例

fun main() {
    val list = mutableListOf("DEF", "A", "GHIJ","BC")
    
    //文字列の長さで降順にソート
    list.sortByDescending { it.length }
    
    println(list)
}
出力:
[GHIJ, DEF, BC, A]

sortedByDescending()

4つ目は、sortedByDescending()を使う方法です。

まず、MutableListからsortedByDescending{}を呼び出します。

そして、sortedByDescending{}のクロージャー内に、比較する値を指定します。

//list=対象のMutableList, {}内に並び替える際、比較する値を指定
val result: List<T> = list.sortedByDescending { it.length }

上記のsortedByDescending{}は、呼び出したMutableList(ミュータブルリスト)を比較する値で降順に並び替えたListを生成します。

sortedByDescending{}のクロージャー内では、MutableListの要素を「it」で取得します。

使用例

fun main() {
    val list = mutableListOf("DEF", "A", "GHIJ","BC")

    //文字列の長さで降順にソート
    val result: List<String> = list.sortedByDescending { it.length }
    
    println(result)
}
出力:
[GHIJ, DEF, BC, A]
スポンサーリンク

まとめ

MutableList(ミュータブルリスト)をソートする方法は、昇順と降順で違います。

  • 昇順にソート
    • sort()を使う方法
      list.sort()
    • sorted()を使う方法
      val result: List<T> = list.sorted()
    • sortBy()を使う方法
      list.sortBy { it }
    • sortedBy()を使う方法
      val result: List<T> = list.sortedBy { it }
  • 降順にソート
    • sortDescending()を使う方法
      list.sortDescending()
    • sortedDescending()を使う方法
      val result: List<T> = list.sortedDescending()
    • sortByDescending()を使う方法
      list.sortByDescending { it }
    • sortedByDescending()を使う方法
      val result: List<T> = list.sortedByDescending { it.length }

コメント

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