gpt4 book ai didi

scala - 将列表转换为元素映射 -> Scala 中的列表(元素)

转载 作者:行者123 更新时间:2023-12-04 16:55:07 25 4
gpt4 key购买 nike

我有一个文档列表,其中一个文档的所有者是用户。

将此列表转换为用户到他们拥有的文档列表的映射的最优雅方法是什么?

所以例如我有:

"doc1" owned by user "John"
"doc2" owned by user "Frank"
"doc3" owned by user "John"

我应该最终得到一张 map :
"John" -> List("doc1", "doc3"), "Frank" -> List("doc2")

我可以想到一种方法,即从文档中获取所有唯一用户,并为每个用户过滤文档列表,使其成为他们拥有的文档列表,但我想知道是否有使用固定次数的方法如果列表很大,可以通过列表来防止任何性能问题。

最佳答案

使用 groupBy:

scala> case class Doc(id: String, owner: String)
defined class Doc

scala> List(Doc("doc1", "John"), Doc("doc2", "Frank"), Doc("doc3", "John"))
res0: List[Doc] = List(Doc(doc1,John), Doc(doc2,Frank), Doc(doc3,John))

scala> res0.groupBy(_.owner)
res1: scala.collection.immutable.Map[String,List[Doc]] = Map(
Frank -> List(Doc(doc2,Frank)), John -> List(Doc(doc1,John), Doc(doc3,John)))

关于scala - 将列表转换为元素映射 -> Scala 中的列表(元素),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com