Class IntArraySet

  • All Implemented Interfaces:
    IntSet

    public class IntArraySet
    extends java.lang.Object
    implements IntSet
    Set of int values. This class is modelled on the java.net.Set interface, but it does not implement this interface, because the set members are int's rather than Objects.

    This implementation of a set of integers is optimized to use very little storage and to provide fast comparison of two sets. The equals() method determines whether two sets contain the same integers.

    This implementation is not efficient at adding new integers to the set. It creates a new array each time you do that.

    Not thread safe.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  IntArraySet.IntArrayIterator
      Iterator class: iterate over an array of integers
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int[] EMPTY_INT_ARRAY  
    • 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 getFirst()
      Get the first value in the set.
      int[] getValues()
      Get the set of integer values as an array
      int hashCode()
      Construct a hash key that supports the equals() test
      boolean isEmpty()
      Determine if the set is empty
      IntIterator iterator()
      Get an iterator over the values
      static IntArraySet 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
    • Field Detail

      • EMPTY_INT_ARRAY

        public static final int[] EMPTY_INT_ARRAY
    • Constructor Detail

      • IntArraySet

        public IntArraySet()
        Create an empty set
      • IntArraySet

        public IntArraySet​(IntHashSet input)
        Create a set containing integers from the specified IntHashSet
        Parameters:
        input - the set to be copied
      • IntArraySet

        public IntArraySet​(IntArraySet input)
        Create one IntArraySet as a copy of another
        Parameters:
        input - the set to be copied
    • 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
      • 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
      • getValues

        public int[] getValues()
        Get the set of integer values as an array
        Returns:
        a sorted array of integers
      • 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
        Returns:
        true if the integer was added, false if it was already present
      • getFirst

        public int getFirst()
        Get the first value in the set.
        Returns:
        the first value in the set, in sorted order
        Throws:
        java.lang.ArrayIndexOutOfBoundsException - if the set is empty
      • 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 IntArraySet 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