Scala 在列表中查找闭合集

Scala 在列表中查找闭合集,scala,set,subset,superset,Scala,Set,Subset,Superset,我有一个集合列表(Scala),希望删除所有的超集。例如 List(Set(1,2,3), Set(1,2), Set(2,1), Set(5,6), Set(5)) 我想得到以下列表 List(Set(1,2), Set(5)) 我编写了以下函数-不确定它有多健壮: def findClosedSets (array: Array[Set[Int]]) : Array[Set[Int]] = { val arrayRight = array.distinct val arrayL

我有一个集合列表(Scala),希望删除所有的超集。例如

List(Set(1,2,3), Set(1,2), Set(2,1), Set(5,6), Set(5))
我想得到以下列表

List(Set(1,2), Set(5))
我编写了以下函数-不确定它有多健壮:

 def findClosedSets (array: Array[Set[Int]]) : Array[Set[Int]] = {
  val arrayRight = array.distinct
  val arrayLeft =  arrayRight
  arrayLeft.filter(j => arrayRight.filter(i => i.subsetOf(j)).length==1)
} 

考虑使用
过滤器
,如下所示

mySets.distinct.filter(s => mySets.forall(x => !x.subsetOf(s) || s == x))

考虑使用
过滤器
,如下所示

mySets.distinct.filter(s => mySets.forall(x => !x.subsetOf(s) || s == x))

那么你的问题是什么?如果您想查看代码,codereview.stackexchange.com是一个更好的地方。那么您的问题是什么?如果您想查看代码,codereview.stackexchange.com是一个更好的地方。
x=>x==s | | x!=(x&s)
x=>x==s | | x!=(x&s)