【问题标题】:Efficiently mapping members to their owning structure有效地将成员映射到他们拥有的结构
【发布时间】:2013-12-08 17:06:37
【问题描述】:

假设我有一个类Family,它里面有一个家庭成员的结构,只要Family提供一个名为def member(m : Member) : Boolean的函数返回@987654324,就与这个问题无关@如果成员m 是家庭的“一部分”。

然而,最重要的是,一个成员可以是多个家庭的一部分。

我有一个所有成员的单独列表,并希望在成员和家庭之间创建一个映射以便快速查找。

所以我有这样的事情:

val allMembers : Set[Member] = getAllMembers()
val allFamilies : Set[Family] = getAllFamilies()

val memberFamilyMap : Map[Member, Set[Family]] = ???

在给定Family.member 函数的情况下,创建上述memberFamilyMap 的最有效方法是什么,并且一个成员可以是多个家庭的成员?我正在尝试对两者的生成器进行理解,但事情有点麻烦(我对 Scala 有点陌生)

【问题讨论】:

    标签: scala


    【解决方案1】:

    我会这样做:

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

    不过可能会有更高效的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 2023-03-07
      • 2021-03-31
      • 1970-01-01
      相关资源
      最近更新 更多