【发布时间】:2021-12-28 00:55:58
【问题描述】:
我有一个对象数组 (Drinks),其中包含一个 theDrinkName 字段。我希望能够先按字母顺序对 Drink 对象 theDrinkName 字段进行排序,然后再按数字排序。
这是我用来生成所有饮料的函数。
data class Drink(val theDrinkName:String)
object DrinkData {
fun generateAllDrinks():Array<Drink> {
return arrayOf(
Drink("Vodka"),
Drink("rum"),
Drink("Gin"),
Drink("151"),
Drink("99")
)
}
}
我按字母顺序(基于theDrinkName)使用以下内容对其进行排序:
val allDrinks = DrinkData.generateAllDrinks().sortedBy { it.theDrinkName.toLowerCase().first()}.toTypedArray()
for (drink in allDrinks){
println(drink.theDrinkName)
}
这将打印以下内容:
151
99
Gin
rum
Vodka
默认情况下,它首先对数字进行排序,然后再按字母排序。如何先按字母,然后按数字对这些数据进行排序,如下所示:
期望的结果:
Gin
rum
Vodka
151
99
【问题讨论】:
标签: android arrays sorting kotlin