본문 바로가기
코틀린/[Aggregation] 집계 작업

[Kotlin][Collection] maxOrNull / minOrNull

by jinwo_o 2024. 8. 9.

가장 큰 요소를 반환하거나 요소가 없으면 null 을 반환합니다. 요소 중 하나라도 NaN 이면 NaN 을 반환합니다.

public fun <T : Comparable<T>> Iterable<T>.maxOrNull(): T? {
    val iterator = iterator()
    if (!iterator.hasNext()) return null
    var max = iterator.next()
    while (iterator.hasNext()) {
        val e = iterator.next()
        if (max < e) max = e
    }
    return max
}


val numbers: List<Int> = listOf(1, 2, 3, 4, 5, 6, 7)
print(numbers.maxOrNull() ?: -1) // 7

 

가장 작은 요소를 반환하거나 요소가 없으면 null 을 반환합니다. 요소 중 하나라도 NaN 이면 NaN 을 반환합니다.

public fun <T : Comparable<T>> Iterable<T>.minOrNull(): T? {
    val iterator = iterator()
    if (!iterator.hasNext()) return null
    var min = iterator.next()
    while (iterator.hasNext()) {
        val e = iterator.next()
        if (min > e) min = e
    }
    return min
}


val numbers: List<Int> = listOf(1, 2, 3, 4, 5, 6, 7)
print(numbers.minOrNull() ?: -1) // 1

 

maxOrNull - Kotlin Programming Language

 

kotlinlang.org

 

minOrNull - Kotlin Programming Language

 

kotlinlang.org