【发布时间】:2021-02-12 11:27:58
【问题描述】:
我花了一个小时尝试在 Kotlin 中对两个相同的可变列表进行排序,但输出不同。谁能解释一下,为什么?
代码:
val manualList = mutableListOf("black, M, CHINA", "black, XL, CHINA", "black, XXL, CHINA", "black, L, CHINA")
val testObj = JSONObject("{ \"193100014065201336100\": {\"name\": \"black, XL, CHINA\" }, \"193361385201336100\": { \"name\": \"black, L, CHINA\" }, \"193361386201336100\": { \"name\": \"black, М, CHINA\" }, \"1934182201336100\": { \"name\": \"black, XXL, CHINA\" } }")
val autoList = mutableListOf<String>()
for (key in testObj.keys()) {
val obj = testObj.getJSONObject(key)
autoList.add(obj.getString("name"))
}
println("Check class:")
println(manualList::class.java)
println(autoList::class.java)
println()
println("Check initial position:")
println(manualList.joinToString(" | "))
println(autoList.joinToString(" | "))
println()
println("Why???")
println(manualList.sortedBy { it }.joinToString(" | "))
println(autoList.sortedBy { it }.joinToString(" | "))
输出:
Check class: class java.util.ArrayList class java.util.ArrayList Check initial position (same): black, M, CHINA | black, XL, CHINA | black, XXL, CHINA | black, L, CHINA black, М, CHINA | black, XL, CHINA | black, XXL, CHINA | black, L, CHINA Why??? black, L, CHINA | black, M, CHINA | black, XL, CHINA | black, XXL, CHINA black, L, CHINA | black, XL, CHINA | black, XXL, CHINA | black, М, CHINA
为了清楚起见,我需要手动列表排序输出。
【问题讨论】:
标签: arrays list sorting kotlin