使用 Scala 的 Set,是否有类似于 Java's Set 中的 containsAll 方法的方法?

2022-09-01 21:59:36

在将一些Java代码转换为Scala的过程中,我发现虽然有一个 Scala 的方法,但没有一个方法。我只是缺少正确的方法名称吗?containsSetcontainsAll

以下是我为填补空白而编写的一些代码,以便我可以快速恢复工作。这是否足够,或者我错过了一些微妙之处?

  def containsAll[A](set: Set[A], subset: Set[A]): Boolean =
    if (set.size >= subset.size)
      subset.forall(a => set.contains(a))
    else
      false

答案 1

有 ,它测试 a 的元素是否包含在另一个元素中。(就表达式而言,情况正好相反)subsetOfSetSet

val set = Set(1,2,3,4)
val subset = Set(1,2)

scala> subset.subsetOf(set)
res0: Boolean = true

scala> set.subsetOf(subset)
res1: Boolean = false

答案 2

在 Scala 中,它配备了集合运算,例如 ,例如Setintersect

set.intersect(subset) == subset

传达了 的语义,即使如前所述也证明了最简洁。containsAllsubsetOf