Kotlin配列(Array)で最小値と最大値を探す
配列の要素の中から最小値と最大値を探す方法を紹介する。
minOrNull()とmaxOrNull()を使う方法
Arrayが提供するminOrNull()、maxOrNull()関数は、配列の最小値と最大値を返す。
fun main() {
val array = arrayOf(66, 10, 34, 70, 42)
println("min: ${array.minOrNull()}")
println("max: ${array.maxOrNull()}")
}
Output:
min: 10
max: 70
Tip
以前`Array`が提供していた`min()`、`max()`関数は、バージョン1.4以降deprecatedになった。
ソートを使う方法
Array.sorted()関数は、昇順にソートされた配列を返す。
昇順にソートされているため、Indexの最初の要素が最小値になり、最後の要素が最大値になる。
fun main() {
val array = arrayOf(66, 10, 34, 70, 42)
val sortedArray = array.sorted()
println("min: ${sortedArray.first()}")
println("max: ${sortedArray.last()}")
}
Output:
min: 10
max: 70
ループを使う方法
for文で配列のすべての要素を繰り返しながら、最小値と最大値を探すこともできる。
次のように、min変数の初期値にIntの最大値、max変数の初期値にIntの最小値を代入し、for文で繰り返しながら値を探す。
fun main() {
val array = arrayOf(66, 10, 34, 70, 42)
var max = Int.MIN_VALUE
var min = Int.MAX_VALUE
for (i in array) {
min = if (min > i) i else min
max = if (max < i) i else max
}
println("min: $min")
println("max: $max")
}
Output:
min: 10
max: 70