Package net.sf.saxon.sort
Class IntRangeSet
java.lang.Object
net.sf.saxon.sort.IntRangeSet
- All Implemented Interfaces:
Serializable
,IntSet
Set of int values. This implementation of IntSet uses a sorted array
of integer ranges.
- Author:
- Michael Kay
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionCreate an empty setIntRangeSet
(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
Modifier and TypeMethodDescriptionboolean
add
(int value) Add an integer to the setvoid
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 setboolean
containsAll
(IntSet other) Test if this set is a superset of another setboolean
Test whether this set has exactly the same members as another set.int[]
Get the end points of the rangesint
Get the number of ranges actually in useint[]
Get the start points of the rangesint
hashCode()
Construct a hash key that supports the equals() testboolean
isEmpty()
Determine if the set is emptyiterator()
Get an iterator over the valuesboolean
remove
(int value) Remove an integer from the setint
size()
Get the number of integers in the settoString()
-
Constructor Details
-
IntRangeSet
public IntRangeSet()Create an empty set -
IntRangeSet
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 rangesendPoints
- the end points of the integer ranges- Throws:
IllegalArgumentException
- if the two arrays are different lengths. Other error conditions in the input are not currently detected.
-
-
Method Details
-
clear
public void clear()Description copied from interface:IntSet
Clear the contents of the IntSet (making it an empty set) -
size
public int size()Description copied from interface:IntSet
Get the number of integers in the set -
isEmpty
public boolean isEmpty()Description copied from interface:IntSet
Determine if the set is empty -
contains
public boolean contains(int value) Description copied from interface:IntSet
Determine whether a particular integer is present in the set -
remove
public boolean remove(int value) Description copied from interface:IntSet
Remove an integer from the set -
add
public boolean add(int value) Add an integer to the set -
iterator
Get an iterator over the values -
toString
-
equals
Test whether this set has exactly the same members as another set. Note that IntRangeSet values are NOT comparable with other implementations of IntSet -
hashCode
public int hashCode()Construct a hash key that supports the equals() test -
containsAll
Test if this set is a superset of another set- Specified by:
containsAll
in interfaceIntSet
-
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 rangehigh
- 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
-