从List [Object]创建Map [String,Map [String,Object]]

时间:2016-07-12 19:52:26

标签: scala dictionary collections

我只是习惯了Scala,而且我已经

case class Person(name: String, birthPlace: String, hairColor: String)

我知道应该有一个很好的方法将List [Person]转换为

Map[Name, Map[Birthplace, Person]]

但是,我无法弄明白该怎么做。

任何和所有帮助将不胜感激。

1 个答案:

答案 0 :(得分:4)

可能有多个人具有相同的名称和出生地,因此这种事物的更好的数据类型是Map[String, Map[String, Seq[Person]]。 您可以使用.groupBy

创建它
    list
      .groupBy(_.name)
      .mapValues(_.groupBy(_.birthplace))

如果您想忽略多次出现,可以通过在最后添加它来丢弃它们:

      .mapValues(_.mapValues(_.head))