假设我有一个类Family
,它内部有一个家庭成员的结构,只要Family提供了一个函数,就与这个问题没有真正的相关性
code> 称为 def member(m : Member) : Boolean
,如果成员 m
是该家族的“一部分”,则返回 true
。
然而,最重要的是,一名成员可以属于多个家庭。
我有一份所有成员(member)的单独列表,并希望在成员(member)和家庭之间创建映射以便快速查找。
所以我有这样的东西:
val allMembers : Set[Member] = getAllMembers()
val allFamilies : Set[Family] = getAllFamilies()
val memberFamilyMap : Map[Member, Set[Family]] = ???
在给定 Family.member
函数的情况下,创建上述 memberFamilyMap
的最有效方法是什么,并且一个成员可以是多个家庭的成员?我正在尝试将 for-compression 与两者的生成器一起使用,但是事情变得有点棘手(我对 Scala 有点陌生)
最佳答案
我会这样做:
allMembers.map(m => m -> allFamilies.filter(_.member(m))).toMap
不过可能有更有效的方法。
关于scala - 有效地将成员映射到其所属结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20456237/