首页 文章

Scala结合了Seq of Timestamps

提问于
浏览
3

您好我正在学习Scala,我有以下案例类的Seq对象:

case class HistoryCounter(time: DateTime, counter:Int)

现在我想基于时间戳 time 组合 counter 的值 . 获取 time 在同一天或同一周的所有计数器的总和 .

你怎么能这样做?折叠或 Map 之类的集合函数是否能够执行此操作?

1 回答

  • 5

    如果你有 List 这些案例类叫做 list ,一种方法就是这样:

    val counts = 
        list.groupBy(_.time).map{
          case (k, v) => (k, v.map(_.counter).sum)
        }
    

    或者更简洁:

    list.groupBy(_.time).mapValues(_.map(_.counter).sum)
    

相关问题