The singleOrNull() extension function in Kotlin returns the single element in the collection, or null if the collection is empty or has more than one element. It can also return the single element matching the given predicate, or null if no element matches the predicate or more than one element matches the predicate.
There are 2 variations for the syntax of Set.singleOrNull() extension function. They are:
fun <T> Set<T>.singleOrNull(): T?
This extension function returns single element, or null if the collection is empty or has more than one element.
Returns value of type T?
.
fun <T> Set<T>.singleOrNull(predicate: (T) -> Boolean): T?
Parameters
Parameter | Optional/Required | Description |
---|---|---|
predicate | optional | A function that takes an element and returns a Boolean indicating whether the element matches the predicate. |
This extension function returns the single element matching the given predicate, or null if element was not found or more than one element was found.
Returns value of type T?
.
Using singleOrNull() to get the single element in a set of integers, or null if the set does not contain exactly one element.
For example,
fun main() {
val numbers = setOf(42)
val singleNumber = numbers.singleOrNull()
println(singleNumber)
}
42
Using singleOrNull() to get the single element matching a predicate in a set of strings, or null if there is no matching element or more than one matching element.
For example,
fun main() {
val strings = setOf("one", "two", "three")
val singleString = strings.singleOrNull { it.length == 3 }
println(singleString)
}
two
Using singleOrNull() to return null when the set has more than one element.
For example,
fun main() {
val numbers = setOf(1, 2, 3)
val singleNumber = numbers.singleOrNull()
println(singleNumber)
}
null
Using singleOrNull() to return null when no element matches the predicate.
For example,
fun main() {
val strings = setOf("one", "two", "three")
val singleString = strings.singleOrNull { it.length == 5 }
println(singleString)
}
null
In this Kotlin tutorial, we learned about singleOrNull() extension function of Set: the syntax and few working examples with output and detailed explanation for each example.