如何使用惯用的Scala替换(填充)来自另一个列表的选项列表中的无条目?

Joh*_*son 5 scala list idiomatic

我有一个List[Option[MyClass]]None在随机位置,我需要再次"补"该名单,从List[MyClass],维持秩序.

以下是样本列表和预期结果:

val listA = List(Some(3),None,Some(5),None,None)
val listB = List(7,8,9)
val expectedList = List(Some(3), Some(7), Some(5), Some(8), Some(9))
Run Code Online (Sandbox Code Playgroud)

那么,如何处理该列表的惯用Scala呢?

xie*_*fei 13

def fillL[T](a:List[Option[T]], b:List[T]) = {
    val iterB = b.iterator
    a.map(_.orElse(Some(iterB.next)))
}
Run Code Online (Sandbox Code Playgroud)