Class IntArraySet

java.lang.Object
net.sf.saxon.z.IntSet
net.sf.saxon.z.IntArraySet

public class IntArraySet extends 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 
    Iterator class: iterate over an array of integers
  • 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
    Create a copy of this IntSet that leaves the original unchanged.
    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
    Create a copy of this IntSet that contains the same set of integers.
    boolean
    remove(int value)
    Remove an integer from the set
    int
    Get the number of integers in the set
     
    union(IntSet other)
    Form a new set that is the union of this set with another set.

    Methods inherited from class net.sf.saxon.z.IntSet

    containsAll, except, intersect, isMutable

    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

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