我只是习惯了Scala,而且我已经
了case class Person(name: String, birthPlace: String, hairColor: String)
我知道应该有一个很好的方法将List [Person]转换为
Map[Name, Map[Birthplace, Person]]
但是,我无法弄明白该怎么做。
任何和所有帮助将不胜感激。
答案 0 :(得分:4)
可能有多个人具有相同的名称和出生地,因此这种事物的更好的数据类型是Map[String, Map[String, Seq[Person]]
。
您可以使用.groupBy
:
list
.groupBy(_.name)
.mapValues(_.groupBy(_.birthplace))
如果您想忽略多次出现,可以通过在最后添加它来丢弃它们:
.mapValues(_.mapValues(_.head))