[英]How to join two lists in Scala?
我们有两个列表:
val a:List[(String, Int, Int)] = List(("apple", 3, 25),("orange", 4, 47))
val b:List[(String, String)] = List(("mango", "25"),("orange", "50"))
加入 a 和 b 的最佳方法是:
val c : List[(String, Int, Int, String)] = List(("orange", 4, 47, "50"))
迭代第一个列表并在映射mb
查找第二个列表的值。 .flatMap
使条目消失,如果.get
返回None
。
val mb = b.toMap
a.flatMap{case (ka,va,vva) => mb.get(ka).map(vb => (ka,va,vva,vb))}
您可以连接列表,然后按元组的第一个元素对它们进行分组:
val groupedTuples: Map[String, List[(String, String)]] = (a ++ b).groupBy(_._1)
val c: Map[String, List[String]] = groupedTuples.mapValues(_.map(_._2))
这将导致
Map(mango -> List(25), orange -> List(4, 50), apple -> List(3))
如果l1
和l2
是两个列表: l1:::l2
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.