가장 큰 요소를 반환하거나 요소가 없으면 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
'코틀린 > [Aggregation] 집계 작업' 카테고리의 다른 글
[Kotlin][Collection] reduce / reduceIndexed (0) | 2024.08.12 |
---|---|
[Kotlin][Collection] maxOf / minOf (0) | 2024.08.12 |
[Kotlin][Collection] fold / foldIndexed (0) | 2024.08.08 |