Bif*_*ton 3 functional-programming scala scala-collections
您好我正在学习Scala,我有以下案例类的Seq对象:
case class HistoryCounter(time: DateTime, counter:Int)
Run Code Online (Sandbox Code Playgroud)
现在我想结合counter基于时间戳的值time.获取time同一天或同一周的所有计数器的总和.
你怎么能这样做?折叠或地图的集合功能之一是否能够做到这一点?
如果你有一个List这样的case类调用list,一种方法是这样的:
val counts =
list.groupBy(_.time).map{
case (k, v) => (k, v.map(_.counter).sum)
}
Run Code Online (Sandbox Code Playgroud)
或者更简洁:
list.groupBy(_.time).mapValues(_.map(_.counter).sum)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |