如果我有以下数据:
List (
Color("red", "43"),
Color("red", "53"),
Color("red", "63"),
Color("red", "43")
)
Run Code Online (Sandbox Code Playgroud)
如果我这样做val myMap: Map[String, List[Color]] = myList.groupBy(_.id),我得到以下内容:
Map(
"43" -> List(Color("red", "43"), Color("red", "43")),
"53" -> List(Color("red", "53")),
"63" -> List(Color("red", "63"))
)
Run Code Online (Sandbox Code Playgroud)
而不是上述内容,我如何才能groupBy对唯一的项目进行处理.最终,获得以下内容:
Map(
"43" -> List(Color("red", "43")),
"53" -> List(Color("red", "53")),
"63" -> List(Color("red", "63"))
)
Run Code Online (Sandbox Code Playgroud)
您可以将组转换为a Set以仅获取唯一元素.
myList.groupBy(_.id).mapValues(_.toSet)
Run Code Online (Sandbox Code Playgroud)
或者,如Dima所述,如果您希望将该组保留为List使用区别.
myList.groupBy(_.id).mapValues(_.distinct)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |