【发布时间】:2018-06-21 06:39:17
【问题描述】:
我有一个这样的对象:
case class MyObject(x : Int,y : String,...) {
val buckets = 3
def bucket = x % buckets // returns a number between 0 and |buckets|
}
(x 是任意数)
例如假设“buckets = 3”,我们有很多对象
MyObject(x = 0, y = "Something", ...)
MyObject(x = 1, y = "Something else", ...)
....
...
使用“groupBy”我收集“MYObjects”使用x % buckets,所以它会像:
val objects : Seq[MyObject] = ...
val groupedObjects : Map[Int: Seq[MyObjects]] = objects.groupBy(obj => x.bucket)
现在我想转换每个值并重新组合为不同类型的子列表
所以对于 group = 1 中的每个项目,我想嵌套在一个附加层下并存储不同的计算值:
所以假设初始分组后的存储桶 0 看起来像:
bucket[0] = [obj1,obj2,...,objn]
我希望能够将存储桶“0”转换为包含另一个嵌套分组:
bucket[0] = Map(sub_bucket_0 -> [transformed(objects)...], sub_bucket_1 -> [transformed(object)...),....]
意味着最终我有一个类型为:
的数据结构Map[Int,Map[Sub_bucket_type,Seq[TransformedObject_type]]]
【问题讨论】:
标签: scala collections functional-programming