## net.sf.saxon.sort
Class IntRangeSet

    java.lang.Object
      net.sf.saxon.sort.IntRangeSet

All Implemented Interfaces:
  java.io.Serializable, IntSet

    public class IntRangeSet

extends java.lang.Object
implements java.io.Serializable, IntSet

Set of int values. This implementation of IntSet uses a sorted array of integer ranges.

Author:
  Michael Kay
See Also:
  Serialized Form

Constructor Summary
`IntRangeSet()` Create an empty set
`IntRangeSet(int[] startPoints, int[] endPoints)` Create an IntRangeSet given the start points and end points of the integer ranges.
`IntRangeSet(IntRangeSet input)` Create one IntRangeSet as a copy of another

Method Summary
`boolean` `add(int value)` Add an integer to the set
`void` `addRange(int low, int high)` Add a range of integers 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
`boolean` `containsAll(IntSet other)` Test if this set is a superset of another set
`boolean` `equals(java.lang.Object other)` Test whether this set has exactly the same members as another set.
`int[]` `getEndPoints()` Get the end points of the ranges
`int` `getNumberOfRanges()` Get the number of ranges actually in use
`int[]` `getStartPoints()` Get the start points of the ranges
`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
`boolean` `remove(int value)` Remove an integer from the set
`int` `size()` Get the number of integers in the set
`java.lang.String` `toString()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### IntRangeSet

    public IntRangeSet()

  Create an empty set

### IntRangeSet

    public IntRangeSet(IntRangeSet input)

  Create one IntRangeSet as a copy of another

  Parameters:
    `input` - the IntRangeSet to be copied

### IntRangeSet

    public IntRangeSet(int[] startPoints,
                       int[] endPoints)

  Create an IntRangeSet given the start points and end points of the integer ranges. The two arrays must be the same length; each must be in ascending order; and the n'th end point must be greater than the n'th start point, and less than the n+1'th start point, for all n.

  Parameters:
    `startPoints` - the start points of the integer ranges
    `endPoints` - the end points of the integer ranges
  Throws:
    `java.lang.IllegalArgumentException` - if the two arrays are different lengths. Other error conditions in the input are not currently detected.

Method Detail

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

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

### iterator

    public IntIterator iterator()

  Get an iterator over the values

  Specified by:
    `iterator` in interface `IntSet`

### 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. Note that IntRangeSet values are NOT comparable with other implementations of IntSet

  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`

### containsAll

    public boolean containsAll(IntSet other)

  Test if this set is a superset of another set

  Specified by:
    `containsAll` in interface `IntSet`

### addRange

    public void addRange(int low,
                         int high)

  Add a range of integers to the set. This is optimized for the case where these are all greater than any existing integer in the set.

  Parameters:
    `low` - the low end of the new range
    `high` - the high end of the new range

### getStartPoints

    public int[] getStartPoints()

  Get the start points of the ranges

### getEndPoints

    public int[] getEndPoints()

  Get the end points of the ranges

### getNumberOfRanges

    public int getNumberOfRanges()

  Get the number of ranges actually in use

Copyright (c) Saxonica Limited. All rights reserved.