2016-08-16 94 views
-9

如何以下两个清单合并为一个,使得:合并两个列表成为一个在斯卡拉

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)) 
+1

Whaaaaaaaat ........? Whaaaaat ....?映射列表1和列表2与输出的规则是什么? –

+1

这是OP的意思。 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,3))。 – Reza

+0

@hsuk我在10小时前回答了你的问题。我认为这是你需要的。 –

回答

2

确定。所以首先你需要将第一个列表转换成地图。

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)) }) 
+0

你可以在最后一行删除'{}'。 – ryan

+0

理解转换第二个列表的规则(给出非常模糊的问题陈述):) – Samar