有效地将成员映射到他们自己的结构

时间:2013-12-08 17:06:38

标签: scala

假设我有一个类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有点新鲜)

1 个答案:

答案 0 :(得分:5)

我会这样做:

 allMembers.map(m => m -> allFamilies.filter(_.member(m))).toMap

虽然可能会有更高效的东西。