假设我有List[Node]
- 节点列表和函数isConnected(n1:Node, n2:Node):Boolean
。现在我想创建一个映射Map[Node, List[Node]]
,它将每个节点映射到其邻居列表。
我想弄清楚如何使用groupBy
。是否有意义?你会如何在惯用的Scala中创建邻居地图?
答案 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