Как создать карту соседей из заданного списка узлов в Scala? - PullRequest
1 голос
/ 21 ноября 2011

Предположим, у меня есть List[Node] - список узлов и функция isConnected(n1:Node, n2:Node):Boolean.Теперь я хотел бы создать карту Map[Node, List[Node]], которая отображает каждый узел в список его соседей.

Я пытаюсь выяснить, как использовать groupBy для этого.Имеет ли это смысл?Как бы вы создали карту соседей в идиоматическом Scala?

Ответы [ 2 ]

5 голосов
/ 21 ноября 2011

Как насчет этого?

list.map(node => node -> list.filter(n => isConnected(node, n))).toMap
1 голос
/ 21 ноября 2011

Предполагая, что l - ваш список:

l zip (l map (n1 => l filter(n2 => isConnected(n1,n2)))) toMap
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...