List 对Kotlin中可变列表中的数据进行排序

List 对Kotlin中可变列表中的数据进行排序,list,kotlin,mutable,List,Kotlin,Mutable,我是Kotlin的新手,需要问一些有关订购可变列表的问题。据我所知,我可以对int和String执行myMutableList.sortByDescending{it.int}。但是返回总是一个单元,而不是可变列表 我哪里出了问题?如何继续?可变意味着可变,因此有意义的是,与返回新列表相比,项目的顺序在当前列表中“原地”发生了更改 尝试查看myMutableList中项目的顺序,然后按sortBy排序,您将看到它们现在处于请求的顺序。kotlin函数等。所有这些函数都会对列表中的项目进行排序。根

我是Kotlin的新手,需要问一些有关订购
可变列表的问题。据我所知,我可以对
int
String
执行
myMutableList.sortByDescending{it.int}
。但是返回总是一个
单元
,而不是
可变列表


我哪里出了问题?如何继续?

可变意味着可变,因此有意义的是,与返回新列表相比,项目的顺序在当前列表中“原地”发生了更改

尝试查看
myMutableList
中项目的顺序,然后按
sortBy
排序,您将看到它们现在处于请求的顺序。

kotlin函数等。所有这些函数都会对列表中的项目进行排序。根据以下文件:

根据数组元素的自然顺序对数组进行排序

如果您不想对元素进行适当排序,而是返回一个已排序的列表(您的基不需要是
MutableList
),您可以使用,等等:

返回按自然排序顺序排序的所有元素的列表


要对可变列表进行排序,可以使用:

Collections.sort(myMutableList)
Collections.reverse(myMutableList)  //To sort the list by descending order
在kotlin中,您可以使用合同kotlin stdlib指令,它变成:

myMutableList.sort()
myMutableList.reverse()  //To sort the list by descending order
然后你可以调用
myMutableList
,它的顺序会改变,如下所示:

val myMutableList = mutableListOf(8,5,4,6)

System.out.println("myMutableList: ${myMutableList[0]}")

myMutableList.sort()

System.out.println("myMutableList: ${myMutableList[0]}")
输出:

myMutableList: 8
myMutableList: 4

您可以使用列表中对象的属性执行类似的操作,因此假设您有一个带有字符串和数字的对象

data class MyObject(var name:String,var number:Int)
给它添加一些值

 val myObjectList: MutableList<MyObject>? = mutableListOf()
 myObjectList!!.add(MyObject("C",3))
 myObjectList.add(MyObject("B",1))
 myObjectList.add(MyObject("A",2))

您可以使用mutableList的扩展方法。像

list.sort()
list.sortBy{it.value}
list.sortByDescending()
list.sortByDescending{it.value}

您可以使用
var sortedByName=myObjectList.sortedBy{it.name}
进行排序,除此之外,您还可以使用
myObjectList.sortedByDescending{it.name}
list.sort()
list.sortBy{it.value}
list.sortByDescending()
list.sortByDescending{it.value}