Scala
标准库中是否有任何函数用于集合,对于类型T
的集合,是否会返回T
类型集合的集合?
所有集合应该具有最多给定数量的“元素”,诀窍是,T
的不同实例可以具有不同的“大小”(这就是为什么需要自定义函数,以返回“大小” “T
)。
答案 0 :(得分:0)
我认为groupBy
可以解决问题:
trait Sized {
def size: Int
}
case class Foo(x: String) extends Sized {
def size = x.length
}
case class Bar(x: Int) extends Sized {
def size = x * 2
}
val list = List(Foo("a"), Foo("b"), Foo("aa"), Foo("bb"),
Bar(0), Bar(1), Bar(2))
val grouped: Map[Int,List[Sized]] = list groupBy { _.size }
如果您不关心尺寸,并且只想要一组收藏品,请使用grouped.values
:
val groups: Iterable[List[Sized]] = grouped.values