排序操作符

reversed(): List<T>

倒序排列集合元素。 代码示例

  1. >>> val list = listOf(1,2,3)
  2. >>> list.reversed()
  3. [3, 2, 1]

这个函数,Kotlin是直接调用的java.util.Collections.reverse()方法。其相关代码如下:

  1. public fun <T> Iterable<T>.reversed(): List<T> {
  2. if (this is Collection && size <= 1) return toList()
  3. val list = toMutableList()
  4. list.reverse()
  5. return list
  6. }
  7. public fun <T> MutableList<T>.reverse(): Unit {
  8. java.util.Collections.reverse(this)
  9. }

sortedsortedDescending

升序排序和降序排序。

代码示例

  1. >>> val list = listOf(1,3,2)
  2. >>> list.sorted()
  3. [1, 2, 3]
  4. >>> list.sortedDescending()
  5. [3, 2, 1]

sortedBysortedByDescending

可变集合MutableList的排序操作。根据函数映射的结果进行升序排序和降序排序。 这两个函数定义如下:

  1. public inline fun <T, R : Comparable<R>> MutableList<T>.sortBy(crossinline selector: (T) -> R?): Unit {
  2. if (size > 1) sortWith(compareBy(selector))
  3. }
  4. public inline fun <T, R : Comparable<R>> MutableList<T>.sortByDescending(crossinline selector: (T) -> R?): Unit {
  5. if (size > 1) sortWith(compareByDescending(selector))
  6. }

代码示例

  1. >>> val mlist = mutableListOf("abc","c","bn","opqde","")
  2. >>> mlist.sortBy({it.length})
  3. >>> mlist
  4. [, c, bn, abc, opqde]
  5. >>> mlist.sortByDescending({it.length})
  6. >>> mlist
  7. [opqde, abc, bn, c, ]