给出以下内容:
Map( X -> List( (Option[Ob1], Option[ObjA]), (Option[Obj1], Option[ObjB]), (Option[Obj2], Option[ObjA]), (Option[Obj2], Option[ObjB]), (..., ...) ))
我需要收集并将组合分组为一对2个列表(同时保持地图和关键部分现在相同):
Map (X -> ( List(Obj1, Obj2, Obj3 ...), List(ObjA, ObjB ...) )
换句话说,我需要执行相反的操作来创建2个列表的所有组合,我需要"原始" 2列表包含每个唯一元素。我尝试了解压缩和映射的各种组合但没有成功。
答案 0 :(得分:2)
听起来你正在寻找Map
这样的事情:
.mapValues(_.unzip).mapValues{ case (a, b) => (a.distinct, b.distinct) }
如果您需要排序,可以将其与distinct
方法进行链接。