我有一个名为Group
的类class Group(id: Int, name: String, category: String) {
}
我正在尝试将Array[Group]
转换为Map[String, Seq[Group]]
作为关键字category: String
。我想创建一个空的Seq[Group]
并在密钥不存在时添加组,否则更新Seq[Group]
。如果密钥已经存在,我不知道如何更新Seq。
答案 0 :(得分:5)
groupBy 将全部完成。
arrayOfGroups.groupBy(_.category)
结果将是Map[String, Array[Group]]
(因为原始容器是一个数组)。数组不完全是Seq,所以如果你想要一个,你可以做
arraysOfGroup.groupBy(_.category).mapValues(_.toSeq)
您可以通过更精确的转换替换toSeq
。
也可以arrayOfGroup.toSeq.groupBy(_.category)