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

用法一

fun <K : Comparable<K>, V> Map<out K, V>.toSortedMap(): SortedMap<K, V>

將此 Map 轉換為 SortedMap 。生成的 SortedMap 根據鍵的自然排序順序確定鍵的相等性和順序。

請注意,如果鍵的自然排序順序認為此映射的任何兩個鍵相等(如果根據 Comparable.compareTo 的鍵相等與根據 Any.equals 的相等不一致,則可能發生這種情況),隻有與最後一個關聯的值他們中的一部分進入了結果Map。

例子:

import kotlin.test.*
import java.util.*

fun main(args: Array<String>) {
//sampleStart
val map = mapOf(Pair("c", 3), Pair("b", 2), Pair("d", 1))
val sorted = map.toSortedMap()
println(sorted.keys) // [b, c, d]
println(sorted.values) // [2, 3, 1]
//sampleEnd
}

輸出:

[b, c, d]
[2, 3, 1]

用法二

fun <K, V> Map<out K, V>.toSortedMap(
    comparator: Comparator<in K>
): SortedMap<K, V>

將此 Map 轉換為 SortedMap 。結果 SortedMap 根據給定的 comparator 提供的排序順序確定鍵的相等性和順序。

請注意,如果 comparator 認為此映射的任何兩個鍵相等,則隻有與它們中的最後一個關聯的值會進入結果映射。

例子:

import kotlin.test.*
import java.util.*

fun main(args: Array<String>) {
//sampleStart
val map = mapOf(Pair("abc", 1), Pair("c", 3), Pair("bd", 4), Pair("bc", 2))
val sorted = map.toSortedMap(compareBy<String> { it.length }.thenBy { it })
println(sorted.keys) // [c, bc, bd, abc]
//sampleEnd
}

輸出:

[c, bc, bd, abc]