给出索引列表的列表排序

时间:2015-05-13 23:39:01

标签: list scala sorting

说我有一个无序列表

val unsorted = List("third", "second", "fourth", "first")

我还有另一个列表,其中包含上面列表中正确顺序的索引

val ids = List(3, 1, 0, 2)

如何使用这些索引对unsorted进行排序以获得此结果

List("first", "second", "third", "fourth")

1 个答案:

答案 0 :(得分:2)

只需将ID映射到未排序的列表本身。

scala> val sorted = ids map unsorted.toIndexedSeq
sorted: List[String] = List(first, second, third, fourth)

不需要将unsorted转换为IndexedSeq,但正如@ gzm0指出的那样,它会阻止此操作成为O(n^2)