Class MonotonicIntSet

  • All Implemented Interfaces:
    IntSet

    public class MonotonicIntSet
    extends java.lang.Object
    implements IntSet
    Set of int values. This implementation requires that new entries are added in monotonically increasing order; any attempt to add a value out of sequence, or to remove a value, results is an UnsupportedOperationException
    • Constructor Summary

      Constructors 
      Constructor Description
      MonotonicIntSet()
      Create an empty set
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean add​(int value)
      Add an integer to the set
      void clear()
      Clear the contents of the IntSet (making it an empty set)
      boolean contains​(int value)
      Determine whether a particular integer is present in the set
      IntSet copy()
      Create a copy of this IntSet that leaves the original unchanged.
      boolean equals​(java.lang.Object other)
      Test whether this set has exactly the same members as another set
      int hashCode()
      Construct a hash key that supports the equals() test
      boolean isEmpty()
      Determine if the set is empty
      boolean isMutable()
      Ask whether the set permits in-situ modifications using add() and remove()
      IntIterator iterator()
      Get an iterator over the values
      static MonotonicIntSet make​(int[] in, int size)
      Factory method to construct a set from an array of integers
      IntSet mutableCopy()
      Create a copy of this IntSet that contains the same set of integers.
      boolean remove​(int value)
      Remove an integer from the set
      int size()
      Get the number of integers in the set
      java.lang.String toString()  
      IntSet union​(IntSet other)
      Form a new set that is the union of this set with another set.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • MonotonicIntSet

        public MonotonicIntSet()
        Create an empty set
    • Method Detail

      • copy

        public IntSet copy()
        Description copied from interface: IntSet
        Create a copy of this IntSet that leaves the original unchanged.
        Specified by:
        copy in interface IntSet
        Returns:
        an IntSet containing the same integers. The result will not necessarily be the same class as the original. It will either be an immutable object, or a newly constructed object.
      • mutableCopy

        public IntSet mutableCopy()
        Description copied from interface: IntSet
        Create a copy of this IntSet that contains the same set of integers.
        Specified by:
        mutableCopy in interface IntSet
        Returns:
        an IntSet containing the same integers. The result will not necessarily be the same class as the original. It will always be a mutable object
      • isMutable

        public boolean isMutable()
        Description copied from interface: IntSet
        Ask whether the set permits in-situ modifications using add() and remove()
        Specified by:
        isMutable in interface IntSet
      • clear

        public void clear()
        Description copied from interface: IntSet
        Clear the contents of the IntSet (making it an empty set)
        Specified by:
        clear in interface IntSet
      • size

        public int size()
        Description copied from interface: IntSet
        Get the number of integers in the set
        Specified by:
        size in interface IntSet
        Returns:
        the size of the set
      • isEmpty

        public boolean isEmpty()
        Description copied from interface: IntSet
        Determine if the set is empty
        Specified by:
        isEmpty in interface IntSet
        Returns:
        true if the set is empty, false if not
      • contains

        public boolean contains​(int value)
        Description copied from interface: IntSet
        Determine whether a particular integer is present in the set
        Specified by:
        contains in interface IntSet
        Parameters:
        value - the integer under test
        Returns:
        true if value is present in the set, false if not
      • remove

        public boolean remove​(int value)
        Description copied from interface: IntSet
        Remove an integer from the set
        Specified by:
        remove in interface IntSet
        Parameters:
        value - the integer to be removed
        Returns:
        true if the integer was present in the set, false if it was not present
      • add

        public boolean add​(int value)
        Add an integer to the set
        Specified by:
        add in interface IntSet
        Parameters:
        value - the integer to be added (which must be greater than or equal to the largest integer currently in the set)
        Returns:
        true if the integer was added, false if it was already present
        Throws:
        java.lang.UnsupportedOperationException - if the set already contains an integer larger than the supplied value
      • iterator

        public IntIterator iterator()
        Get an iterator over the values
        Specified by:
        iterator in interface IntSet
        Returns:
        an iterator over the values, which will be delivered in sorted order
      • union

        public IntSet union​(IntSet other)
        Form a new set that is the union of this set with another set.
        Specified by:
        union in interface IntSet
        Parameters:
        other - the other set
        Returns:
        the union of the two sets
      • make

        public static MonotonicIntSet make​(int[] in,
                                           int size)
        Factory method to construct a set from an array of integers
        Parameters:
        in - the array of integers, which must be in ascending order
        size - the number of elements in the array that are significant
        Returns:
        the constructed set
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object other)
        Test whether this set has exactly the same members as another set
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Construct a hash key that supports the equals() test
        Overrides:
        hashCode in class java.lang.Object