Class MonotonicIntSet


  • public class MonotonicIntSet
    extends 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 Detail

      • MonotonicIntSet

        public MonotonicIntSet()
        Create an empty set
    • Method Detail

      • copy

        public IntSet copy()
        Description copied from class: IntSet
        Create a copy of this IntSet that leaves the original unchanged.
        Specified by:
        copy in class 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 class: IntSet
        Create a copy of this IntSet that contains the same set of integers.
        Specified by:
        mutableCopy in class 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 class: IntSet
        Ask whether the set permits in-situ modifications using add() and remove()
        Overrides:
        isMutable in class IntSet
        Returns:
        true if the set permits in-situ modifications
      • clear

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

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

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

        public boolean contains​(int value)
        Description copied from class: IntSet
        Determine whether a particular integer is present in the set
        Specified by:
        contains in class 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 class: IntSet
        Remove an integer from the set
        Specified by:
        remove in class 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 class 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:
        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 class 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.
        Overrides:
        union in class 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
      • equals

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

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