どうも、ちょげ(@chogetarou)です。
リスト(List)の最大値を取得する方法を紹介します。
方法

リスト(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 }
使用例
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 }
コメント