【发布时间】:2021-11-26 01:27:29
【问题描述】:
如果我没有用它们的实际名称来命名,请原谅我,我刚刚开始学习 Scala。我已经环顾了一段时间,但找不到我的问题的明确答案。
假设我有一个对象列表,每个对象都有两个字段:x: Int 和 l: List[String],在我的例子中,字符串代表类别。
l 列表可以是任意长度,因此一个对象可以属于多个类别。此外,各种对象可以属于同一类别。我的目标是按各个类别对对象进行分组,其中类别是键。这意味着如果一个对象被链接到“N”个类别,它将出现在“N”个键值对中。
到目前为止,我设法通过以下方式对类别列表进行分组:
objectList.groupBy(x => x.l)
但是,这显然是按类别列表而不是按类别对对象进行分组。
我正在尝试使用不可变集合来避免循环等。
如果有人有一些想法,将不胜感激! 谢谢
编辑:
通过请求实际案例类和我正在尝试的内容。
case class Car(make: String, model: String, fuelCapacity: Option[Int], category:Option[List[String]])
再一次,汽车可以属于多个类别。比如说List("SUV", "offroad", "family")。
我想按category 元素而不是整个类别列表进行分组,并将fuelCapacity 作为值,以便能够提取每个类别的平均fuelCapacity 以及其他指标。
【问题讨论】:
标签: scala