Umy
Umy

Reputation: 563

Different result when sorting list with same elements and order

I spend an hour trying to sort in Kotlin two same mutable list, but output is different. Could someone please explain, why?

Code:

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(" | "))

Output:

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

To make at clear, I need manualList sort output.

Upvotes: 0

Views: 50

Answers (1)

IR42
IR42

Reputation: 9722

There is russian М in { \"name\": \"black, М, CHINA\" } and latin M in "black, M, CHINA" in manualList

Upvotes: 2

Related Questions