Scala:从Array [Group]创建Map [String,Seq [Group]]

Pra*_*nna 1 scala hashmap

我有一个名为Group的类

class Group(id: Int, name: String, category: String) {

}
Run Code Online (Sandbox Code Playgroud)

我试图转换Array[Group]Map[String, Seq[Group]]category: String关键.Seq[Group]如果密钥不存在,我想创建一个空并添加组,否则更新Seq[Group].如果密钥已经存在,我不知道如何更新Seq.

Did*_*ont 5

groupBy会做到这一切.

arrayOfGroups.groupBy(_.category)
Run Code Online (Sandbox Code Playgroud)

结果将是一个Map[String, Array[Group]](因为原始容器是一个数组).数组不完全是一个Seq,所以如果你想要一个,你可能会这样做

arraysOfGroup.groupBy(_.category).mapValues(_.toSeq)
Run Code Online (Sandbox Code Playgroud)

您可以toSeq通过更精确的转换来替换它.它也有可能arrayOfGroup.toSeq.groupBy(_.category)