[Kotlin]リスト(List)の最大値を取得するには?

Kotlin

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

リスト(List)の最大値を取得する方法を紹介します。

スポンサーリンク

方法

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

リスト(List)の最大値を取得する方法は、3つあります。

max()

1つ目は、max()関数を使う方法です。

具体的な方法としては、list.max()のように、リストからmax()関数を呼び出します。

val result = list.max()

上記のmax()関数は、呼び出したリストの最大値を取得します。

呼び出したリストが空の場合は、エラーが発生します。

使用例

fun main() {
    val list : List<Int> = listOf<Int>(3, 19, 0, 39, 10)
    
    val result = list.max()
    
    println(result)
}
出力:
39

maxOrNull()

2つ目は、maxOrNull()関数を使う方法です。

具体的には、list.maxOrNull()のように、リストからmaxOrNull()関数を呼び出します。

val result = list.maxOrNull()

上記のmaxOrNull()関数は、呼び出したリストの最大値を取得します。

もし、呼び出したリストが空の場合は、Nullを返します。

呼び出したリストが空の場合にデフォルト値を返したいならば、エルビス演算子を使います。

//リストが空の場合は、valueを返す
val result = empty.maxOrNull() ?: value

使用例

fun main() {
    val list : List<Int> = listOf<Int>(3, 19, 0, 39, 10)
    val empty : List<Int> = listOf<Int>()
    
    val result = list.maxOrNull()
    val result2 = empty.maxOrNull() ?: 0
    
    println(result)
    println(result2)
}
出力:
39
0

maxOf()

3つ目は、maxOf()関数を使う方法です。

まず、リストからmaxOf {}を呼び出します。

そして、maxOf{}の{}内にitを記述します。

val result = array.maxOf { it }

上記のmaxOf()は、呼び出したリストの最大値を取得します。

また、maxOf()は、リストの要素のプロパティから最大値を取得できます。

//prop=要素のプロパティ
val result = array.maxOf { it.prop }

maxOf{}のitは、リストの要素です。

使用例

data class Person(val name: String, val age: Int)

fun main() {
    val list = listOf(8, 2, 10, 4, 7)
    val list2 = listOf(Person("Taro", 11), Person("Satoru", 37), Person("Misuzu", 17))
    
    val result = list.maxOf { it }
    val result2 = list2.maxOf { it.age }
    
    println(result)
    println(result2)
}
出力:
10
37

まとめ

リストの最大値を取得する方法は、次の3つです。

  • max()を使う方法
    val result = list.max()
  • maxOrNull()を使う方法
    val result = list.maxOrNull()
  • maxOf()を使う方法
    val result = list.maxOf { it }

コメント

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