Kotlin Set singleOrNull()
Syntax & Examples
Set.singleOrNull() extension function
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.
Syntax of Set.singleOrNull()
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?
.
✐ Examples
1 Getting the single element in a set of integers or null
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,
- Create a set of integers with a single element.
- Use singleOrNull() to get the single element.
- Print the resulting element.
Kotlin Program
fun main() {
val numbers = setOf(42)
val singleNumber = numbers.singleOrNull()
println(singleNumber)
}
Output
42
2 Getting the single element matching a predicate in a set of strings or null
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,
- Create a set of strings.
- Use singleOrNull() with a predicate to get the single matching element.
- Print the resulting element.
Kotlin Program
fun main() {
val strings = setOf("one", "two", "three")
val singleString = strings.singleOrNull { it.length == 3 }
println(singleString)
}
Output
two
3 Returning null when the set has more than one element
Using singleOrNull() to return null when the set has more than one element.
For example,
- Create a set of integers with multiple elements.
- Use singleOrNull() to try to get the single element, expecting null to be returned.
- Print the result.
Kotlin Program
fun main() {
val numbers = setOf(1, 2, 3)
val singleNumber = numbers.singleOrNull()
println(singleNumber)
}
Output
null
4 Returning null when no element matches the predicate
Using singleOrNull() to return null when no element matches the predicate.
For example,
- Create a set of strings.
- Use singleOrNull() with a predicate that matches no element, expecting null to be returned.
- Print the result.
Kotlin Program
fun main() {
val strings = setOf("one", "two", "three")
val singleString = strings.singleOrNull { it.length == 5 }
println(singleString)
}
Output
null
Summary
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.