min Of With
Версия Kotlin: 1.4
inline fun <T, R> Array<out T>.minOfWith(comparator: Comparator<in R>, selector: (T) -> R): R
Возвращает наименьшее значение согласно заданному компаратору среди всех значений, полученных функцией селектором, применённой к каждому элементу массива.
Если несколько элементов дают минимальное значение, эта функция возвращает первое из этих значений.
Исключения
если массив пуст.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
data class Book(val title: String, val publishYear: Int, val rating: Double)
// A custom Comparator that orders strings by their length
val lengthComparator = compareBy<String> { it.length }
// The longest and shortest book titles
val books = listOf(
Book("Red Sand", 2004, 3.5),
Book("Silver Bullet", 2009, 4.4),
Book("Clear Water", 2018, 4.1),
Book("Night Sky", 2023, 3.8)
)
println(books.maxOfWith(lengthComparator) { it.title }) // Silver Bullet
println(books.minOfWith(lengthComparator) { it.title }) // Red Sand
val emptyList = listOf<Book>()
// maxOfWith() and minOfWith() throw if the collection is empty
// emptyList.maxOfWith(lengthComparator) { it.title } // will fail with NoSuchElementException
// emptyList.minOfWith(lengthComparator) { it.title } // will fail with NoSuchElementException
// maxOfWithOrNull() and minOfWithOrNull() return null if the collection is empty
println(emptyList.maxOfWithOrNull(lengthComparator) { it.title }) // null
println(emptyList.minOfWithOrNull(lengthComparator) { it.title }) // null
//sampleEnd
}
inline fun <R> ByteArray.minOfWith(comparator: Comparator<in R>, selector: (Byte) -> R): R
inline fun <R> ShortArray.minOfWith(comparator: Comparator<in R>, selector: (Short) -> R): R
inline fun <R> IntArray.minOfWith(comparator: Comparator<in R>, selector: (Int) -> R): R
inline fun <R> LongArray.minOfWith(comparator: Comparator<in R>, selector: (Long) -> R): R
inline fun <R> FloatArray.minOfWith(comparator: Comparator<in R>, selector: (Float) -> R): R
inline fun <R> DoubleArray.minOfWith(comparator: Comparator<in R>, selector: (Double) -> R): R
inline fun <R> BooleanArray.minOfWith(comparator: Comparator<in R>, selector: (Boolean) -> R): R
inline fun <R> CharArray.minOfWith(comparator: Comparator<in R>, selector: (Char) -> R): R
inline fun <R> UIntArray.minOfWith(comparator: Comparator<in R>, selector: (UInt) -> R): R
inline fun <R> ULongArray.minOfWith(comparator: Comparator<in R>, selector: (ULong) -> R): R
inline fun <R> UByteArray.minOfWith(comparator: Comparator<in R>, selector: (UByte) -> R): R
inline fun <R> UShortArray.minOfWith(comparator: Comparator<in R>, selector: (UShort) -> R): R
Возвращает наименьшее значение согласно заданному компаратору среди всех значений, полученных функцией селектором, применённой к каждому элементу массива.
Если несколько элементов дают минимальное значение, эта функция возвращает первое из этих значений.
Исключения
если массив пуст.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
// A custom Comparator that orders numbers by their absolute values
val absComparator = compareBy<Int> { it.absoluteValue }
// The largest and smallest cubic values when compared by absolute value
val numbers = intArrayOf(-2, 3, -4, 1)
println(numbers.maxOfWith(absComparator) { it * it * it }) // -64
println(numbers.minOfWith(absComparator) { it * it * it }) // 1
val emptyArray = intArrayOf()
// maxOfWith() and minOfWith() throw if the array is empty
// emptyArray.maxOfWith(absComparator) { it * it * it } // will fail with NoSuchElementException
// emptyArray.minOfWith(absComparator) { it * it * it } // will fail with NoSuchElementException
// maxOfWithOrNull() and minOfWithOrNull() return null if the array is empty
println(emptyArray.maxOfWithOrNull(absComparator) { it * it * it }) // null
println(emptyArray.minOfWithOrNull(absComparator) { it * it * it }) // null
//sampleEnd
}
inline fun <T, R> Iterable<T>.minOfWith(comparator: Comparator<in R>, selector: (T) -> R): R
Возвращает наименьшее значение согласно заданному компаратору среди всех значений, полученных функцией селектором, применённой к каждому элементу коллекции.
Если несколько элементов дают минимальное значение, эта функция возвращает первое из этих значений.
Исключения
если коллекция пуста.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
data class Book(val title: String, val publishYear: Int, val rating: Double)
// A custom Comparator that orders strings by their length
val lengthComparator = compareBy<String> { it.length }
// The longest and shortest book titles
val books = listOf(
Book("Red Sand", 2004, 3.5),
Book("Silver Bullet", 2009, 4.4),
Book("Clear Water", 2018, 4.1),
Book("Night Sky", 2023, 3.8)
)
println(books.maxOfWith(lengthComparator) { it.title }) // Silver Bullet
println(books.minOfWith(lengthComparator) { it.title }) // Red Sand
val emptyList = listOf<Book>()
// maxOfWith() and minOfWith() throw if the collection is empty
// emptyList.maxOfWith(lengthComparator) { it.title } // will fail with NoSuchElementException
// emptyList.minOfWith(lengthComparator) { it.title } // will fail with NoSuchElementException
// maxOfWithOrNull() and minOfWithOrNull() return null if the collection is empty
println(emptyList.maxOfWithOrNull(lengthComparator) { it.title }) // null
println(emptyList.minOfWithOrNull(lengthComparator) { it.title }) // null
//sampleEnd
}
inline fun <K, V, R> Map<out K, V>.minOfWith(comparator: Comparator<in R>, selector: (Map.Entry<K, V>) -> R): R
Возвращает наименьшее значение согласно заданному компаратору среди всех значений, полученных функцией селектором, применённой к каждой записи карты.
Если несколько записей дают минимальное значение, эта функция возвращает первое из этих значений.
Исключения
если карта пуста.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
data class Book(val title: String, val publishYear: Int, val rating: Double)
// A custom Comparator that orders strings by their length
val lengthComparator = compareBy<String> { it.length }
// The longest and shortest book titles
val books = listOf(
Book("Red Sand", 2004, 3.5),
Book("Silver Bullet", 2009, 4.4),
Book("Clear Water", 2018, 4.1),
Book("Night Sky", 2023, 3.8)
)
println(books.maxOfWith(lengthComparator) { it.title }) // Silver Bullet
println(books.minOfWith(lengthComparator) { it.title }) // Red Sand
val emptyList = listOf<Book>()
// maxOfWith() and minOfWith() throw if the collection is empty
// emptyList.maxOfWith(lengthComparator) { it.title } // will fail with NoSuchElementException
// emptyList.minOfWith(lengthComparator) { it.title } // will fail with NoSuchElementException
// maxOfWithOrNull() and minOfWithOrNull() return null if the collection is empty
println(emptyList.maxOfWithOrNull(lengthComparator) { it.title }) // null
println(emptyList.minOfWithOrNull(lengthComparator) { it.title }) // null
//sampleEnd
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/min-of-with.html