The minOfWithOrNull() extension function in Kotlin returns the smallest value according to the provided comparator among all values produced by the selector function applied to each element in the collection, or null if there are no elements.
The syntax of Set.minOfWithOrNull() extension function is:
fun <T, R> Set<T>.minOfWithOrNull(comparator: Comparator<in R>, selector: (T) -> R): R?
This minOfWithOrNull() extension function of Set returns the smallest value according to the provided comparator among all values produced by selector function applied to each element in the collection or null if there are no elements.
Parameter | Optional/Required | Description |
---|---|---|
comparator | required | The comparator used to compare the values. |
selector | required | A function that takes an element and returns a value to be compared. |
Set.minOfWithOrNull() returns value of type R?
.
Using minOfWithOrNull() to find the minimum value among integers in a set with a custom comparator, or null if the set is empty.
For example,
fun main() {
val numbers = setOf(3, 1, 4, 1, 5)
val minValue = numbers.minOfWithOrNull(compareBy { it }, { it.toDouble() })
println(minValue)
}
1.0
Using minOfWithOrNull() to find the minimum length among strings in a set with a custom comparator, or null if the set is empty.
For example,
fun main() {
val strings = setOf("apple", "pear", "banana")
val minLength = strings.minOfWithOrNull(compareBy { it }, { it.length.toDouble() })
println(minLength)
}
4.0
Using minOfWithOrNull() to find the minimum age among custom objects in a set with a custom comparator, or null if the set is empty.
For example,
data class Person(val name: String, val age: Int)
fun main() {
val people = setOf(Person("Alice", 30), Person("Bob", 25), Person("Charlie", 35))
val minAge = people.minOfWithOrNull(compareBy { it }, { it.age.toDouble() })
println(minAge)
}
25.0
Using minOfWithOrNull() to handle an empty set and return null with a custom comparator.
For example,
fun main() {
val emptySet = emptySet<Int>()
val minValue = emptySet.minOfWithOrNull(compareBy { it }, { it.toDouble() })
println(minValue)
}
null
In this Kotlin tutorial, we learned about minOfWithOrNull() extension function of Set: the syntax and few working examples with output and detailed explanation for each example.