【发布时间】:2020-07-31 17:11:06
【问题描述】:
如何根据另一个 Seq 中存在的值的顺序对 Scala Seq 进行排序?
val original_seq = Seq("a", "b", "c", "d", "e", "f", "g") //[a,b,c,d,e,f,g]
val original_set = original_seq.toSet
val entity_set = Seq("a", "b", "d", "f").toSet //[a,b,d,f]
val delta_set = original_set.diff(entity_set)
val final_cols = entity_set ++ delta_set.toSeq //[e f a b g c d] or some random order
//Expected order of final_cols Seq is ==> [a,b,c,d,e,f,g]
final_cols Seq 我想作为original_seq 中的值排序?在 Scala 中如何做到这一点?
【问题讨论】:
-
套装没有顺序,因此您不能订购它们。为什么订单对您很重要?
-
final_cols.toSeq.sortBy(original_seq.indexOf)效率低下,如果original_seq有任何不连续的重复条目将无法工作。 -
看起来你实际上是在做这两组的联合?