在Scala中将两个列表合并为一个

在Scala中将两个列表合并为一个,scala,Scala,如何将以下两个列表合并为一个列表,以便: L1 = List((a,1), (b,2), (c,3), (d,4)) L2 = List((a,b), (b,c), (a,d)) 合并后的清单将是: L3 = List((1,2), (2,3), (1,‌​4)) 嗯。所以首先需要将第一个列表转换为映射 val l1 = List((1,1),(4,4),(5,4),(8,4),(9,5)) val l2 = List((1,4),(1,9),(5,9),(8,9)) val mapL1

如何将以下两个列表合并为一个列表,以便:

L1 = List((a,1), (b,2), (c,3), (d,4))
L2 = List((a,b), (b,c), (a,d)) 
合并后的清单将是:

L3 = List((1,2), (2,3), (1,‌​4))

嗯。所以首先需要将第一个列表转换为映射

val l1 = List((1,1),(4,4),(5,4),(8,4),(9,5))
val l2 = List((1,4),(1,9),(5,9),(8,9))

val mapL1 = l1.toMap

val requiredList = l2.map({ case (i, j) => (mapL1(i), mapL1(j)) })

什么?什么?将列表1和列表2映射到输出的规则是什么?这就是OP的意思。L1=列表((a,1),(b,2),(c,3),d,4))和L2=列表((a,b),(b,c),(a,d))=>L3=列表((1,2),(2,3),(1,3))。@hsuk我大约在10小时前回答了你的问题。我认为这是您所需要的。您可以删除最后一行中的
{}
。很好地理解了转换第二个列表的规则(给出了非常模糊的问题陈述):)