Class IntArraySet

java.lang.Object
net.sf.saxon.sort.IntArraySet
All Implemented Interfaces:
Serializable, IntSet

public class IntArraySet extends Object implements Serializable, 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.

Author:
Michael Kay
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int[]
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Create an empty set
    Create one IntArraySet as a copy of another
    Create a set containing integers from the specified IntHashSet
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    add(int value)
    Add an integer to the set
    void
    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
    boolean
    Test if this set is a superset of another set
    boolean
    equals(Object other)
    Test whether this set has exactly the same members as another set
    int
    Get the first value in the set.
    int[]
    Get the set of integer values as an array
    int
    Construct a hash key that supports the equals() test
    boolean
    Determine if the set is empty
    Get an iterator over the values
    make(int[] in, int size)
    Factory method to construct a set from an array of integers
    boolean
    remove(int value)
    Remove an integer from the set
    int
    Get the number of integers in the set
     
    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 Details

    • EMPTY_INT_ARRAY

      public static final int[] EMPTY_INT_ARRAY
  • Constructor Details

    • 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 Details

    • 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:
      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 IntArraySet union(IntArraySet other)
      Form a new set that is the union of this set with another set.
      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 String toString()
      Overrides:
      toString in class Object
    • 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
    • containsAll

      public boolean containsAll(IntSet other)
      Test if this set is a superset of another set
      Specified by:
      containsAll in interface IntSet