Вы можете использовать сопоставление с образцом / деконструкцию при значении Map
, как показано ниже,
val m1 = Map(
"IND1" -> List(
("IND1", List(("AA", 11), ("BB", 12)))
//(k, (first :: second :: Nil)
),
"IND2" -> List(
("IND1", List(("AA", 42), ("BB", 80)))
//(k, (first :: second :: Nil)
)
)
val results = m1.map {
case (key, ((k, (f :: s :: Nil)) :: Nil)) =>
(key, f._2, s._2)
}
println(results) // List((IND1,11,12), (IND2,42,80))
Вы можете пойти дальше и деконструировать f
и s
, а также кортежи,
val results = m1.map {
case (key, (_, (_, first) :: (_, second) :: Nil) :: Nil) =>
(key, first, second)
}