/var/log/jsoizo

メモ帳 技術とか趣味とか

scala.collection.immutable.SetOpts, scala.collection.SetOptsのメソッドツアー

前の記事でsubsetsの挙動を確認したついでに、collectionの中でもSet固有に実装されているメソッドを一通り叩いてみる。

特に明示しない場合このようなSet[Int]に対して叩くものとする。

val set = Set(1,2,3)

scala.collection.immutable.SetOpts

incl(elem: A): Set[A]

引数に渡した要素を追加する

scala> set.incl(4)
val res3: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4)

+(elem: A): Set[A]

inclのエイリアス

excl(elem: A): Set[A]

引数に渡した要素を削除する

scala> set.excl(2)
val res5: scala.collection.immutable.Set[Int] = Set(1, 3)

-(elem: A): Set[A]

exclのエイリアス

diff(that: collection.Set[A]): Set[A]

thisに含むが引数に渡したthat: Set[A]に含まない要素を取り出す

scala> set.diff(Set(3,4))
val res7: scala.collection.immutable.Set[Int] = Set(1, 2)

removedAll(that: IterableOnce[A]): Set[A]

引数で渡したIteratorが持っている値をすべて取り除く

scala> set.removedAll(List(3,4))
val res10: scala.collection.immutable.Set[Int] = Set(1, 2)

--(that: IterableOnce[A]): Set[A]

removedAllのエイリアス

scala.collection.SetOpts

contains(elem: A): Boolean

elemが含まれていることを検証する

scala> set.contains(1)
val res13: Boolean = true

scala> set.contains(4)
val res14: Boolean = false

apply(elem: A): Boolean

contiansのエイリアス

subsetOf(that: Set[A]): Boolean

thisがthatの部分集合であることを検証する

scala> set.subsetOf(Set(1,2,3,4))
val res15: Boolean = true

scala> set.subsetOf(Set(3,4))
val res16: Boolean = false

subsets

thisの要素から取りうるすべての組み合わせのSet[A]を生成する。空Setも含む。

scala> set.subsets().toList
val res21: List[scala.collection.immutable.Set[Int]] = List(Set(), Set(1), Set(2), Set(3), Set(1, 2), Set(1, 3), Set(2, 3), Set(1, 2, 3))

subsets(len: Int): Iterator[Set[A]]

subsets同様だが生成されるSet[A]の要素数がlenであるものに限定される

scala> set.subsets(1).toList
val res18: List[scala.collection.immutable.Set[Int]] = List(Set(1), Set(2), Set(3))

scala> set.subsets(2).toList
val res19: List[scala.collection.immutable.Set[Int]] = List(Set(1, 2), Set(1, 3), Set(2, 3))

intersect(that: Set[A]): Set[A]

thisとthatの積集合

scala> set.intersect(Set(3,4))
val res22: scala.collection.immutable.Set[Int] = Set(3)

&(that: Set[A]): Set[A]

intersectのエイリアス

concat(that: collection.IterableOnce[A]): Set[A]

thisとthatの和集合

scala> set.concat(List(2,2,3,4))
val res24: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4)

final def &~

diffのエイリアス

++ (that: collection.IterableOnce[A]): Set[A]

concatのエイリアス

union(that: Set[A]): Set[A]

concatのエイリアス

|(that: Set[A]): Set[A]

concatのエイリアス

参考

Scala Standard Library 2.13.8 - scala.collection.immutable.SetOps

Scala Standard Library 2.13.8 - scala.collection.SetOps