如何组合两个不同大小的列表

时间:2016-02-24 23:19:42

标签: scala collections

如何合并两个不同大小的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))
}

有更好的方法吗?

1 个答案:

答案 0 :(得分:3)

zipAll完全符合您的需求:

def merge[A](l1: List[A], l2: List[A], default: A) : List[(A, A)] = {
  l1.zipAll(l2, default, default)
}