[英]Scala: find unique Seqs in Seq of Seqs
Its hard for me to even put into words what I mean to ask, so let me give an example. 我什至很难说出我想问的话,所以让我举一个例子。
I have a Seq
like so, where Occurrence
is a case class: 我有一个这样的Seq
,其中Occurrence
是一个case类:
Seq(
Seq(Occurrence1, Occurrence2, Occurrence3),
Seq(Occurrence2, Occurrence3, Occurrence1),
Seq(Occurrence4),
Seq(Occurrence5, Occurrence6),
Seq(Occurrence6, Occurrence5)
)
Which I am trying to condense to look like: 我想让它看起来像这样:
Seq(
Seq(Occurrence1, Occurrence2, Occurrence3),
Seq(Occurence4),
Seq(Occurrence5, Occurrence6)
)
Is there a collections API that allows me to do this? 是否有允许我执行此操作的collections API? I'd like to sort the items within that Seq 我想对那个序列中的项目进行排序
Set
as set contains only the distinct elements. 并将列表转换为Set
as set,仅包含不同的元素。 Example, 例,
final case class Occurance(times: Int)
val Occurrence1 = Occurance(times = 1)
val Occurrence2 = Occurance(times = 2)
val Occurrence3 = Occurance(times = 3)
val Occurrence4 = Occurance(times = 4)
val Occurrence5 = Occurance(times = 5)
val Occurrence6 = Occurance(times = 6)
val data = Seq(
Seq(Occurrence1, Occurrence2, Occurrence3),
Seq(Occurrence2, Occurrence3, Occurrence1),
Seq(Occurrence4),
Seq(Occurrence5, Occurrence6),
Seq(Occurrence6, Occurrence5)
)
data.map(_.sortBy {_.times}).toSet.toSeq
//res0: Seq[Seq[Occurance]] = Vector(List(Occurance(1), Occurance(2), Occurance(3)), List(Occurance(4)), List(Occurance(5), Occurance(6)))
distinct
instead of .toSet.toSeq
, 您还可以distinct
.toSet.toSeq
而不是 Example, 例,
data.map(_.sortBy{_.times}).distinct
//res1: Seq[Seq[Occurance]] = List(List(Occurance(1), Occurance(2), Occurance(3)), List(Occurance(4)), List(Occurance(5), Occurance(6)))
Somehow related question - How in Scala to find unique items in List 与某种方式相关的问题- 如何在Scala中找到列表中的唯一项
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.