Kotlin 排序字符串的可变映射
Kotlin sorting Mutable map of strings
为什么我不能对字符串的可变映射进行排序。我的地图声明如下。
val schedule: MutableMap<String, ArrayList<String>>
它给我如下的时间表对象。
{1=[1], 0=[0], 3=[3], 2=[2], 5=[5], 4=[4, 14.07, 16.07, 01.08, 10.08], 6=[6]}
现在是第 4 天,我将按升序对元素进行排序,最好忽略第一个元素。我希望我的输出如下所示。
{1=[1], 0=[0], 3=[3], 2=[2], 5=[5], 4=[4, 1.08, 10.08, 14.07, 16.07], 6=[6]}
我可以通过 schedule.schedule["4"]?.sorted()
访问所需的日期
但这没有做任何事情。我厌倦了将字符串转换为整数,但仍然没有成功。
使用 sort()
而不是 sorted()
。
sort()
排序 "in place":它改变了 ArrayList
sorted()
returns 新排序 ArrayList
试一试:https://repl.it/repls/BitterRapidQuark
val map = mutableMapOf("4" to arrayListOf<String>("4", "14.07", "16.07", "01.08", "10.08"))
println("Original: " + map) // {4=[4, 14.07, 16.07, 01.08, 10.08]}
map["4"]?.sorted()
println("Not mutated: " + map) // {4=[4, 14.07, 16.07, 01.08, 10.08]}
map["4"]?.sort()
println("Mutated: " + map) // {4=[01.08, 10.08, 14.07, 16.07, 4]}
为什么我不能对字符串的可变映射进行排序。我的地图声明如下。
val schedule: MutableMap<String, ArrayList<String>>
它给我如下的时间表对象。
{1=[1], 0=[0], 3=[3], 2=[2], 5=[5], 4=[4, 14.07, 16.07, 01.08, 10.08], 6=[6]}
现在是第 4 天,我将按升序对元素进行排序,最好忽略第一个元素。我希望我的输出如下所示。
{1=[1], 0=[0], 3=[3], 2=[2], 5=[5], 4=[4, 1.08, 10.08, 14.07, 16.07], 6=[6]}
我可以通过 schedule.schedule["4"]?.sorted()
访问所需的日期
但这没有做任何事情。我厌倦了将字符串转换为整数,但仍然没有成功。
使用 sort()
而不是 sorted()
。
sort()
排序 "in place":它改变了ArrayList
sorted()
returns 新排序ArrayList
试一试:https://repl.it/repls/BitterRapidQuark
val map = mutableMapOf("4" to arrayListOf<String>("4", "14.07", "16.07", "01.08", "10.08"))
println("Original: " + map) // {4=[4, 14.07, 16.07, 01.08, 10.08]}
map["4"]?.sorted()
println("Not mutated: " + map) // {4=[4, 14.07, 16.07, 01.08, 10.08]}
map["4"]?.sort()
println("Mutated: " + map) // {4=[01.08, 10.08, 14.07, 16.07, 4]}