Class UnboundedSet<T>

java.lang.Object
it.unimi.di.prog2.h22.UnboundedSet<T>
All Implemented Interfaces:
Iterable<T>

public class UnboundedSet<T> extends Object implements Iterable<T>
UnboundedSets are mutable, unbounded sets of elements of a given type.

A typical UnboundedSet is \( S = \{x_1, \ldots, x_n \} \).

  • Field Details

    • els

      private final List<T> els
      The List containing this set elements.
  • Constructor Details

    • UnboundedSet

      public UnboundedSet()
      Initializes this set to be empty.

      Builds the set \( S = \varnothing \).

  • Method Details

    • repOk

      private boolean repOk()
    • getIndex

      private int getIndex(T x)
      Looks for a given element in this set.
      Parameters:
      x - the element to look for.
      Returns:
      the index where x appears in els if the element belongs to this set, or -1
    • insert

      public void insert(T x)
      Adds the given element to this set.

      This method modifies the object, that is: \( S' = S \cup \{ x \} \).

      Parameters:
      x - the element to be added.
    • remove

      public void remove(T x)
      Removes the given element from this set.

      This method modifies the object, that is: \( S' = S \setminus \{ x \} \).

      Parameters:
      x - the element to be removed.
    • isIn

      public boolean isIn(T x)
      Tells if the given element is in this set.

      Answers the question \( x\in S \).

      Parameters:
      x - the element to look for.
      Returns:
      whether the given element belongs to this set, or not.
    • size

      public int size()
      Returns the cardinality of this set.

      Responds with \( |S| \).

      Returns:
      the size of this set.
    • choose

      public T choose() throws EmptyException
      Returns an element from this set.
      Returns:
      an arbitrary element from this set.
      Throws:
      EmptyException - if this set is empty.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • iterator

      public Iterator<T> iterator()
      Specified by:
      iterator in interface Iterable<T>