Сначала вы должны конвертировать Map
в List
или Seq
(если вы хотите более общий тип), а затем вы можете использовать flatMap
.Пример с toList
:
val map = Map("a" -> ("1", "2"), "b" -> ("3", "4"))
map.toList.flatMap {
case (k, (v1, v2)) => List(k -> v1, k -> v2)
}
// res0: List[(String, String)] = List((a,1), (a,2), (b,3), (b,4))
Сначала ваши значения отображаются в списках кортежей, поэтому промежуточный результат будет:
List(List((a,1), (a,2)), List((b,3), (b,4)))
, а затем выравнивает и вы получаете список кортежей:
List((a,1), (a,2), (b,3), (b,4))