Как получить возможные пары комбинаций значений хеш-карты Scala - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть хеш-карта следующим образом:

val hm : HashMap[Int, List[String]] =
  HashMap(
    1 -> List("Eat", "Drink","Sleep", "work"),
    2 -> List("Eat", "Sleep","Dance"),
    3 -> List("Write", "Print","Dance")
  )

Я хочу получить возможные пары значений этого хеш-карты и вернуть каждую пару отдельно в списке. Я использую функцию combinaisons как

hm.mapValues(_.combinations(2).toList)

Результат:

 Map(1-> List(List(Eat, Drink), List(Eat, Sleep), List(Eat, work), List(Drink, Sleep), List(Drink, work), List(Sleep, work)), 2-> List(List(Eat, Sleep), List(Eat, Dance), List(Sleep, Dance)), 3 -> List(List(Write, Print), List(Write, Dance), List(Print, Dance)))

но ожидаемый результат должен состоять из трех списков

List(List("Eat", "Drink","Sleep", "work"),List("Eat", "Sleep","Dance"))
List( List("Eat", "Drink","Sleep", "work"),List("Write", "Print","Dance"))
List(List("Eat", "Sleep","Dance"), List("Write", "Print","Dance"))

Чего мне не хватает

1 Ответ

2 голосов
/ 22 апреля 2020

используйте только значения вашей карты:

hm.values.toList.combinations(2).toList

https://scalafiddle.io/sf/ZGbHC4c/0

...