如何合并两个不同大小的List
?
例如merge(List("a", "b"), List("1", "2", "3"), "")
应该返回List(("a, "1"), ("b", "2"), ("", "3"))
这是我目前的版本:
def merge[A](l1: List[A], l2: List[A], default: A) : List[(A, A)] = {
val m = max(l1.size, l2.size)
l1.padTo(m, default).zip(l2.padTo(m, default))
}
有更好的方法吗?
答案 0 :(得分:3)
zipAll完全符合您的需求:
def merge[A](l1: List[A], l2: List[A], default: A) : List[(A, A)] = {
l1.zipAll(l2, default, default)
}