distinctBy

Common
JVM
JS
Native
1.0
fun <T, K> Sequence<T>.distinctBy(
    selector: (T) -> K
): Sequence<T>

(source)

Returns a sequence containing only elements from the given sequence having distinct keys returned by the given selector function.

Among elements of the given sequence with equal keys, only the first one will be present in the resulting sequence. The elements in the resulting sequence are in the same order as they were in the source sequence.

The operation is intermediate and stateful.

import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
val list = listOf('a', 'A', 'b', 'B', 'A', 'a')
println(list.distinct()) // [a, A, b, B]
println(list.distinctBy { it.uppercaseChar() }) // [a, b]
//sampleEnd
}