我有一个有趣的问题,对于新接触Scala的人来说,这很难。
我需要结合两个列表:
listA : List[List[Int]]
listB : List[Int]
通过以下方式:
val listA = List(List(1,1), List(2,2))
val listB = List(3,4)
val listC = ???
// listC: List[List[Int]] = List(List(1,1,3),List(1,1,4),List(2,2,3),List(2,2,4)
在Java中,我将使用几个嵌套循环:
for(List<Integer> list : listA) {
for(Integer i: listB) {
subList = new ArrayList<Integer>(list);
subList.add(i);
listC.add(subList);
}
}
我猜这是Scala中的一个班轮,但到目前为止,它使我难以理解。
您要执行扁平化的笛卡尔积。理解是最简单的方法,它看起来与Java解决方案类似:
val listC = for (list <- listA; i <- listB) yield list :+ i
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句