Package net.sf.saxon.z

## Class IntArraySet

- java.lang.Object
- - net.sf.saxon.z.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` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `IntArraySet()` | Create an empty set
    `IntArraySet​(IntArraySet input)` | Create one IntArraySet as a copy of another
    `IntArraySet​(IntHashSet input)` | Create a set containing integers from the specified IntHashSet

  - ### 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`

    - ### Methods inherited from interface net.sf.saxon.z.IntSet

      `containsAll, except, intersect, isMutable`

- - ### 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`