Scala 结合时间戳序列

Scala combine Seq of Timestamps

你好,我正在学习 Scala,我有以下情况的对象序列 class:

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

现在我想根据时间戳 time 合并 counter 的值。获取 time 在同一天或同一周的所有计数器的总和。

你怎么做到的? fold 或 map 之类的集合函数之一是否能够执行此操作?

如果您有一个 List 这些案例 类 称为 list,一种方法如下:

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

或更简洁:

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