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

ソートを使う方法

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