13
Как преобразовать список кортежей List[(A,B)]
в кортеж из списков (List[A], List[B])
?Scala преобразовать список кортежей в кортеж из списков
Я попытался на следующий, но это выглядит сырой, и я надеялся, что там был лучший способ сделать это
val flat: List[AnyRef] = aAndB.map{ x =>
x.map(y => List(y._1, y._2))
}.flatMap(x => x)
val typeA: List[A] = flat.filter {
case x: A => true
case _ => false
}.map(_.asInstanceOf[A])
val typeB: List[B] = flat.filter {
case x: B => true
case _ => false
}.map(_.asInstanceOf[B])
Для более высоких целей вы можете использовать [коллекции продуктов] (https://github.com/marklister/product-collections) –