如何从Scala中的给定节点列表创建邻居映射?

时间:2011-11-20 20:31:36

标签: scala graph

假设我有List[Node] - 节点列表和函数isConnected(n1:Node, n2:Node):Boolean。现在我想创建一个映射Map[Node, List[Node]],它将每个节点映射到其邻居列表。

我想弄清楚如何使用groupBy。是否有意义?你会如何在惯用的Scala中创建邻居地图?

2 个答案:

答案 0 :(得分:5)

这样的事情怎么样?

list.map(node => node -> list.filter(n => isConnected(node, n))).toMap

答案 1 :(得分:1)

假设l是你的清单:

l zip (l map (n1 => l filter(n2 => isConnected(n1,n2)))) toMap