Kotlin 的 sortedBy 是否保持相等值的顺序?

Jen*_*Jen 2 sorting kotlin

假设我有一个以任意顺序定义的值列表。

val list = listOf("a", "aa", "b", "bb")
Run Code Online (Sandbox Code Playgroud)

如果我sortedBy使用Comparable值的某些属性对这个列表进行排序。

val sorted = list.sortedBy { it.length }
Run Code Online (Sandbox Code Playgroud)

对于比较相等的值,是否会保留原始的任意顺序?

["a", "b", "aa", "bb"] // good
["b", "a", "aa", "bb"] // bad
["a", "b", "bb", "aa"] // bad
["b", "a", "bb", "aa"] // bad
Run Code Online (Sandbox Code Playgroud)

Jen*_*Jen 5

是的,根据官方文档

排序稳定。这意味着相等的元素在排序后保持它们相对于彼此的顺序。