说我有一个无序列表
val unsorted = List("third", "second", "fourth", "first")
我还有另一个列表,其中包含上面列表中正确顺序的索引
val ids = List(3, 1, 0, 2)
如何使用这些索引对unsorted
进行排序以获得此结果
List("first", "second", "third", "fourth")
答案 0 :(得分:2)
只需将ID映射到未排序的列表本身。
scala> val sorted = ids map unsorted.toIndexedSeq
sorted: List[String] = List(first, second, third, fourth)
不需要将unsorted
转换为IndexedSeq
,但正如@ gzm0指出的那样,它会阻止此操作成为O(n^2)
。