在Scala中使用groupBy后转换地图的推荐方法?

在Scala中使用groupBy后转换地图的推荐方法?,scala,Scala,我从依赖项中使用了一个Java枚举,并希望从中创建一个映射 假设枚举名为“SomeEnum1”: 我能够使用groupby并从“someImportantField”值获取映射到SomeEnum1的列表: SomeEnum1.values.groupBy(x => x.someImportantField) 但这样做之后,我得到了一个Map[String,Array[SomeEnum1]],而我想要的是一个Map[String,Array[String]]。我试过使用: SomeEnum

我从依赖项中使用了一个Java枚举,并希望从中创建一个映射

假设枚举名为“SomeEnum1”:

我能够使用groupby并从“someImportantField”值获取映射到SomeEnum1的列表:

SomeEnum1.values.groupBy(x => x.someImportantField)
但这样做之后,我得到了一个Map[String,Array[SomeEnum1]],而我想要的是一个Map[String,Array[String]]。我试过使用:

SomeEnum1.values.groupBy(_.getSomeImportantField).mapValues(_.name)
但我得到一个错误,即name不是数组[…..SomeEnum1]的成员。 是否有其他方法可以将结果数组转换为包含枚举名称而不是枚举本身?

您缺少一个循环:

SomeEnum1.values.groupBy(_.getSomeImportantField).mapValues(_.map(_.name))
mapValues
迭代每个映射值,该值是一个枚举数组。对于这些数组中的每一个,您都希望将每个元素转换为字符串

SomeEnum1.values.groupBy(_.getSomeImportantField).mapValues(_.map(_.name))