Kotlinでは、リストの中から 特定の条件に基づいて最大・最小の要素を取得 する場合、maxByOrNull
と minByOrNull
を使うと、簡潔に記述できます。
maxByOrNullの基本的な使い方(最大要素の取得)
Kotlin
val numbers = listOf(10, 25, 8, 42, 15)
val maxNumber = numbers.maxByOrNull { it }
println(maxNumber) // 出力: 42
このように、リスト内の 最大値 を簡単に取得できます。
minByOrNullの基本的な使い方(最小要素の取得)
Kotlin
val minNumber = numbers.minByOrNull { it }
println(minNumber) // 出力: 8
リスト内の 最小値 もシンプルに取得可能です。
maxByOrNullとminByOrNullの活用例
1. オブジェクトリストで特定のプロパティの最大・最小を取得
Kotlin
data class User(val name: String, val age: Int)
val users = listOf(
User("田中", 25),
User("佐藤", 30),
User("鈴木", 22)
)
val oldestUser = users.maxByOrNull { it.age }
val youngestUser = users.minByOrNull { it.age }
println(oldestUser) // 出力: User(name=佐藤, age=30)
println(youngestUser) // 出力: User(name=鈴木, age=22)
オブジェクトリストの 特定のプロパティ に基づいた最大・最小値の取得も簡単です。
2. 文字列リストの最大・最小を取得
Kotlin
val words = listOf("Kotlin", "Java", "Swift", "Python")
val longestWord = words.maxByOrNull { it.length }
val shortestWord = words.minByOrNull { it.length }
println(longestWord) // 出力: "Kotlin"
println(shortestWord) // 出力: "Java"
文字列リストの 最長・最短の単語を取得 できます。
maxByOrNullとminByOrNullを活用するメリット
- リスト内の最大・最小要素を簡潔に取得できる
- 特定のプロパティを基準にした比較が可能
- リストが空の場合は
null
を返すため、安全に処理できる
最大・最小値を取得する際は、ぜひ maxByOrNull
と minByOrNull
を活用してみてください!