2015-05-13 27 views
0

的列表清單說我有一個無序列表排序給定指數的

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

而且我有了上面的列表中的索引以正確的順序另一個列表

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

哪有我有點unsorted用這些指標來得到這樣的結果

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

回答

2

簡單的IDS到UNS地圖墮落名單本身。

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

轉換unsortedIndexedSeq是沒有必要的,但是作爲@ gzm0指出下面它可以防止O(n^2)此操作。

+1

考慮先在'unsorted'上調用'toIndexedSeq',否則就是'O(n^2)'。 – gzm0