我有2个清单,如下所述:
val L1 = List[(Int,Int,String)]
val L2 = List[(Int,Int,String)]
我想以结果列表必须具有4个元素(Int,Int,String,String)的方式在1st和2nd Int元素的基础上加入这2个列表。
val joinedList = List[(Int, Int, String, String)]
最后2个String元素将是L1的字符串和L2的字符串。
前任:-
val L1 = List((1,1,"one"), (2,2,"two"))
val L2 = List((2,2,"twice"), (3,3,"thrice"))
输出列表->
val joinedList = List((1,1,"one","--"),(2,2,"two","twice"), (3,3,"--","thrice"))
请提出一种在Scala中实现此目标的方法。
首先,您希望将其放入Maps
,因此查找起来更容易,然后可以map
遍历所有键:
val L1Map = L1.map{case (x,y,z) => ((x,y) -> z)}.toMap
val L2Map = L2.map{case (x,y,z) => ((x,y) -> z)}.toMap
val allKeys = L1Map.keySet ++ L2Map.keySet
val result = allKeys map {case (x,y) =>
(x, y, L1Map.getOrElse((x,y), "--"), L2Map.getOrElse((x,y), "--"))
}
Set
结果使您无法分类。如果需要List
,可以将其转换回并按需要对其进行排序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句