Package net.sf.saxon.z
Class IntRangeSet
java.lang.Object
net.sf.saxon.z.IntSet
net.sf.saxon.z.IntRangeSet
Set of int values. This implementation of IntSet uses a sorted array
of integer ranges.
-
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 setcopy()
Create a copy of this IntSet that leaves the original unchanged.boolean
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 emptyboolean
Ask whether the set permits in-situ modifications using add() and remove()iterator()
Get an iterator over the valuesCreate a copy of this IntSet that contains the same set of integers.boolean
remove
(int value) Remove an integer from the setint
size()
Get the number of integers in the settoString()
Methods inherited from class net.sf.saxon.z.IntSet
containsAll, except, intersect, union
-
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 class:IntSet
Clear the contents of the IntSet (making it an empty set) -
copy
Description copied from class:IntSet
Create a copy of this IntSet that leaves the original unchanged. -
mutableCopy
Description copied from class:IntSet
Create a copy of this IntSet that contains the same set of integers.- Specified by:
mutableCopy
in classIntSet
- 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
-
isMutable
public boolean isMutable()Description copied from class:IntSet
Ask whether the set permits in-situ modifications using add() and remove() -
size
public int size()Description copied from class:IntSet
Get the number of integers in the set -
isEmpty
public boolean isEmpty()Description copied from class:IntSet
Determine if the set is empty -
contains
public boolean contains(int value) Description copied from class:IntSet
Determine whether a particular integer is present in the set -
remove
public boolean remove(int value) Description copied from class: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 -
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- Returns:
- the start points
-
getEndPoints
public int[] getEndPoints()Get the end points of the ranges- Returns:
- the end points
-
getNumberOfRanges
public int getNumberOfRanges()Get the number of ranges actually in use- Returns:
- the number of ranges
-