假设我有一个类Family
,其中包含该族的成员结构,只要有Family
提供的函数{{1}如果成员def member(m : Member) : Boolean
是该家庭的“一部分”,则会返回true
。
然而,最重要的是,成员可以成为多个家庭的一部分。
我有一个单独的所有成员列表,并希望在成员和家庭之间创建一个映射,以便快速查找。
所以我有这样的事情:
m
在给定val allMembers : Set[Member] = getAllMembers()
val allFamilies : Set[Family] = getAllFamilies()
val memberFamilyMap : Map[Member, Set[Family]] = ???
函数的情况下创建上述memberFamilyMap
的最有效方法是什么,并且成员可以是多个系列的成员?我正在尝试使用两者的生成器进行理解,但事情有点毛茸茸(我对Scala有点新鲜)
答案 0 :(得分:5)
我会这样做:
allMembers.map(m => m -> allFamilies.filter(_.member(m))).toMap
虽然可能会有更高效的东西。