【发布时间】:2017-05-12 16:15:53
【问题描述】:
我有一个字符串列表
val list = List("a", "b", "c", "d", "e")
我想要一个带有键的地图作为列表中项目的索引。所以我做了以下事情:
def mapByIndexes(list: List[String]): Map[Int, String] = (1 to list.size).zip(list).toMap
但是,生成的地图不保留索引顺序,结果我得到了这个:
Map(5 -> "e", 1 -> "a", 2 -> "b", 3 -> "c", 4 -> "d")
如何修改上面的代码,以便获得具有以下自然顺序的地图?
Map(1 -> "a", 2 -> "b", 3 -> "c", 4 -> "d", 5 -> "e")
注意:我知道我可以对生成的地图进行排序,但我可以避免该步骤并创建一个已经保留顺序的地图吗?
编辑:Scala LinkedHashMap.toMap preserves order? 中描述的ListMap 解决方案有效,但我不喜欢额外的括号和_* 这么简单的事情。没有别的东西,所以我可以有一个链接?如果没有,我会接受@pamu 的回答。
【问题讨论】:
标签: scala list dictionary scala-collections