如何在Scala中加入两个列表?

GKV*_*KVM 3 dictionary scala list

我们有两个清单:

val a:List[(String, Int, Int)] = List(("apple", 3, 25),("orange", 4, 47))

val b:List[(String, String)] = List(("mango", "25"),("orange", "50"))
Run Code Online (Sandbox Code Playgroud)

哪个是加入a和b得到的最佳方法:

val c : List[(String, Int, Int, String)] = List(("orange", 4, 47, "50"))
Run Code Online (Sandbox Code Playgroud)

zig*_*tar 8

迭代第一个列表并在地图中查找第二个列表的值mb.将.flatMap使得进入dissappear,如果.get回报None.

 val mb = b.toMap

 a.flatMap{case (ka,va,vva) => mb.get(ka).map(vb => (ka,va,vva,vb))}
Run Code Online (Sandbox Code Playgroud)