Scala计算具有特定属性的地图对象

时间:2013-04-15 21:16:14

标签: scala scala-collections counting

我有referrals: Map[String, Referral],我正在寻找最好的方法来计算这些推荐对象中有多少具有某个阶段属性。

case class Referral(
    name: String,
    phase: String
)

我需要计算有多少phase等于“phase1”。

我已经能够简单地在Map上循环以使用“phase1”收集推荐并将它们变成Iterable,但我有一个预感,这是一个不必要的额外步骤,但无法解决如何做到这一点流体

val phase1_refs = for (ref <- referrals.values if ref.phase == "phase1") yield ref.name
val phase1_count = phase1_refs.size

使用for获取phase1_refs大小的语法是什么?我一直在玩价值观的过滤器,但一直在混淆我自己。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用

referrals.values.count(_.phase == "phase1")