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