scala.collection.immutable
trait Set

[source: `scala/collection/immutable/Set.scala`]

`` `trait` Set[A]
  `extends` Set[A]

  This class defines the interface for immutable sets. Operations on an immutable set leave the original set unchanged, and return a new set if needed.

  Concrete set implementations just have to provide functionality for the abstract methods in `scala.collection.Set` as well as for `+` and `-`.

  Note that abstract immutable.Set's are not covariant in their type parameter. This is because some implementations cannot support the `+` method for arbitrary types.

Author
  Matthias Zenger, Martin Odersky
Version
  1.1, 03/05/2004

Direct Known Subclasses:
  Enumeration.SetXX, EmptySet, HashSet, ListSet, Set1, Set2, Set3, Set4, SortedSet

Method Summary
`def` | ** (that : Set[A]) : Set[A] This method is an alias for `intersect`. It computes an intersection with set `that`. It removes all the elements that are not present in `that`.
`abstract def` | + (elem : A) : Set[A] Create a new set with an additional element.
`def` | + (elem1 : A, elem2 : A, elems : A*) : Set[A] Add two or more elements to this set.
`def` | ++ (elems : Iterable[A]) : Set[A] Add all the elements provided by an iterator of the iterable object `elems` to the set.
`def` | ++ (elems : Iterator[A]) : Set[A] Add all the elements provided by an iterator to the set.
`def` | - (elem1 : A, elem2 : A, elems : A*) : Set[A] Remove two or more elements from this set.
`abstract def` | - (elem : A) : Set[A] Remove a single element from a set.
`def` | -- (elems : Iterator[A]) : Set[A] Remove all the elements provided by an iterator `elems` from the set.
`def` | -- (elems : Iterable[A]) : Set[A] Remove all the elements provided by an iterator of the iterable object `elems` from the set.
`abstract def` | empty [B] : Set[B]
`def` | excl (elems : A*) : Set[A] `excl` removes many elements from the set.
`def` | excl (that : Iterable[A]) : Set[A] This method removes all the elements provided by an iterator of the iterable object `that` from the set.
`override def` | filter (p : (A) => Boolean) : Set[A] Method `filter` removes all elements from the set for which the predicate `p` yields the value `false`.
`override def` | flatMap [B](f : (A) => Iterable[B]) : Set[B] Applies the given function `f` to each element of this set, then forms the union of all results.
`def` | incl (that : Iterable[A]) : Set[A] This method will add all the elements provided by an iterator of the iterable object `that` to the set.
`def` | incl (elems : A*) : Set[A] `incl` can be used to add many elements to the set at the same time.
`def` | intersect (that : Set[A]) : Set[A] This method computes an intersection with set `that`. It removes all the elements that are not present in `that`.
`override def` | map [B](f : (A) => B) : Set[B] Returns the set resulting from applying the given function `f` to each element of this set.

Methods inherited from Set
size (abstract), contains (abstract), apply, isEmpty, subsetOf, equals, hashCode, toArray

Methods inherited from Collection
toString, stringPrefix

Methods inherited from Iterable
elements (abstract), concat, ++, takeWhile, dropWhile, take, drop, foreach, forall, exists, find, findIndexOf, indexOf, foldLeft, foldRight, /:, :\, reduceLeft, reduceRight, copyToBuffer, sameElements, toList, toStream, mkString, mkString, mkString, addString, addString, copyToArray, projection, hasDefiniteSize

Methods inherited from Function1
compose, andThen

Methods inherited from AnyRef
getClass, clone, notify, notifyAll, wait, wait, wait, finalize, ==, !=, eq, ne, synchronized

Methods inherited from Any
==, !=, isInstanceOf, asInstanceOf

Method Details

`abstract` `def` empty[B] : Set[B]

Returns
  an empty set of arbitrary element type

`abstract` `def` +(elem : A) : Set[A]

  Create a new set with an additional element.

`` `def` +(elem1 : A, elem2 : A, elems : A*) : Set[A]

  Add two or more elements to this set.

Parameters
  `elem1 -` the first element.
  `elem2 -` the second element.
  `elems -` the remaining elements.
Returns
  a new set with the elements added.

`` `def` ++(elems : Iterable[A]) : Set[A]

  Add all the elements provided by an iterator of the iterable object `elems` to the set.

Parameters
  `elems -` the iterable object containing the elements to be added
Returns
  a new set with the elements added.

`` `def` ++(elems : Iterator[A]) : Set[A]

  Add all the elements provided by an iterator to the set.

Parameters
  `elems -` the iterator containing the elements to be added
Returns
  a new set with the elements added.

@deprecated
`` `def` incl(elems : A*) : Set[A]

  `incl` can be used to add many elements to the set at the same time.

@deprecated
`` `def` incl(that : Iterable[A]) : Set[A]

  This method will add all the elements provided by an iterator of the iterable object `that` to the set.

Parameters
  `that -` ...

`abstract` `def` -(elem : A) : Set[A]

  Remove a single element from a set.

Parameters
  `elem -` the element to be removed
Returns
  a new set with the element removed.

`` `def` -(elem1 : A, elem2 : A, elems : A*) : Set[A]

  Remove two or more elements from this set.

Parameters
  `elem1 -` the first element.
  `elem2 -` the second element.
  `elems -` the remaining elements.
Returns
  a new set with the elements removed.

`` `def` --(elems : Iterable[A]) : Set[A]

  Remove all the elements provided by an iterator of the iterable object `elems` from the set.

Parameters
  `elems -` An iterable object containing the elements to remove from the set.
Returns
  a new set with the elements removed.

`` `def` --(elems : Iterator[A]) : Set[A]

  Remove all the elements provided by an iterator `elems` from the set.

Parameters
  `elems -` An iterator containing the elements to remove from the set.
Returns
  a new set with the elements removed.

@deprecated
`` `def` excl(elems : A*) : Set[A]

  `excl` removes many elements from the set.

@deprecated
`` `def` excl(that : Iterable[A]) : Set[A]

  This method removes all the elements provided by an iterator of the iterable object `that` from the set.

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

  This method computes an intersection with set `that`. It removes all the elements that are not present in `that`.

Parameters
  `that -` the set to intersect with

`` `def` **(that : Set[A]) : Set[A]

  This method is an alias for `intersect`. It computes an intersection with set `that`. It removes all the elements that are not present in `that`.

Parameters
  `that -` the set to intersect with

`override` `def` map[B](f : (A) => B) : Set[B]

  Returns the set resulting from applying the given function `f` to each element of this set.

Parameters
  `f -` function to apply to each element.
Returns
  a set containing `f(a0), ..., f(an)` if this set contains `a0, ..., an`.

`override` `def` flatMap[B](f : (A) => Iterable[B]) : Set[B]

  Applies the given function `f` to each element of this set, then forms the union of all results.

Parameters
  `f -` function to apply to each element.
Returns
  a set containing all elements in each `f(a0), ..., f(an)` if this set contains `a0, ..., an`.

`override` `def` filter(p : (A) => Boolean) : Set[A]

  Method `filter` removes all elements from the set for which the predicate `p` yields the value `false`.

Parameters
  `p -` The predicate used to filter the set