1

为什么我不能对字符串的可变映射进行排序。我的地图声明如下。

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() 但这无济于事。我厌倦了将字符串转换为整数,但仍然没有运气。

4

1 回答 1

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]}
于 2019-05-03T15:23:35.560 回答