distinctBy所在位置是kotlin.collections.distinctBy,其相關用法介紹如下。

用法一

inline fun <T, K> Array<out T>.distinctBy(
    selector: (T) -> K
): List<T>

返回一個列表,該列表僅包含給定數組中具有給定 selector 函數返回的不同鍵的元素。

在給定數組的具有相同鍵的元素中,隻有第一個元素會出現在結果列表中。結果列表中的元素與它們在源數組中的順序相同。

例子:

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
}

輸出:

[a, A, b, B]
[a, b]

用法二

inline fun <K> ByteArray.distinctBy(
    selector: (Byte) -> K
): List<Byte>
inline fun <K> ShortArray.distinctBy(
    selector: (Short) -> K
): List<Short>
inline fun <K> IntArray.distinctBy(
    selector: (Int) -> K
): List<Int>
inline fun <K> LongArray.distinctBy(
    selector: (Long) -> K
): List<Long>
inline fun <K> FloatArray.distinctBy(
    selector: (Float) -> K
): List<Float>
inline fun <K> DoubleArray.distinctBy(
    selector: (Double) -> K
): List<Double>
inline fun <K> BooleanArray.distinctBy(
    selector: (Boolean) -> K
): List<Boolean>
inline fun <K> CharArray.distinctBy(
    selector: (Char) -> K
): List<Char>

返回一個列表,該列表僅包含給定數組中具有給定 selector 函數返回的不同鍵的元素。

結果列表中的元素與它們在源數組中的順序相同。

例子:

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
}

輸出:

[a, A, b, B]
[a, b]

用法三

inline fun <T, K> Iterable<T>.distinctBy(
    selector: (T) -> K
): List<T>

返回一個列表,該列表僅包含給定集合中具有給定 selector 函數返回的不同鍵的元素。

在給定集合的具有相同鍵的元素中,隻有第一個元素會出現在結果列表中。結果列表中的元素與它們在源集合中的順序相同。

例子:

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
}

輸出:

[a, A, b, B]
[a, b]