为什么我不能对可变的字符串映射进行排序。我的地图声明如下。
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()
访问所需的日期
但这什么也没做。我很累将Strings转换为Ints,但仍然没有运气。
答案 0 :(得分:0)
使用sort()
代替sorted()
。
sort()
按“原地”排序:它使ArrayList
变sorted()
返回新排序的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]}