如何对 Kotlin MutableList<Int> 进行排序

C W*_*ams -2 java sorting kotlin

我来自 Java 背景,我有一个简单的数组:

var statues: MutableList<Int> =  mutableListOf<Int>() 
statues.add(1)
statues.add(3)
statues.add(2)
var sortedArray: MutableList<Int> =  mutableListOf<Int>()
sortedArray = statues.sortedArray()
Run Code Online (Sandbox Code Playgroud)

如何对这个简单的数组进行排序并将其存储在变量sortedArray中?

DPM*_*DPM 5

由于它是可变的数据结构,因此您可以使用sort()就地排序

fun <T : Comparable<T>> MutableList<T>.sort() (source)

根据自然排序顺序对列表中的元素进行就地排序。

  val sortedArray = statues
  sortedArray.sort()
Run Code Online (Sandbox Code Playgroud)

但我猜您可能打算复制该列表,因为您声明了两个变量。在这种情况下:

 val sortedArray = statues.sorted()
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这是一个列表,而不是一个数组。

一些提示:编程中的一条经验法则是支持不变性,在这种情况下使用val而不是var如果可能的话。此外,您不需要在声明中两次指示类型。这就足够了:

val statues: MutableList<Int> =  mutableListOf()
Run Code Online (Sandbox Code Playgroud)

  • 一切都正确 - 但 `val SortedArray =status.sorted()` 比调用 `.toMutableList().sort()` 方便得多 (3认同)