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)
你好,我正在学习 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)