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]