distinctBy

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.

Since Kotlin

1.0

Samples

import kotlin.test.*

fun main() { 
   //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
}