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 TypeMethodDescriptionbooleanadd(int value) Add an integer to the setvoidaddRange(int low, int high) Add a range of integers to the set.voidclear()Clear the contents of the IntSet (making it an empty set)booleancontains(int value) Determine whether a particular integer is present in the setcopy()Create a copy of this IntSet that leaves the original unchanged.booleanTest whether this set has exactly the same members as another set.int[]Get the end points of the rangesintGet the number of ranges actually in useint[]Get the start points of the rangesinthashCode()Construct a hash key that supports the equals() testbooleanisEmpty()Determine if the set is emptybooleanAsk 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.booleanremove(int value) Remove an integer from the setintsize()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:IntSetClear the contents of the IntSet (making it an empty set) -
copy
Description copied from class:IntSetCreate a copy of this IntSet that leaves the original unchanged. -
mutableCopy
Description copied from class:IntSetCreate a copy of this IntSet that contains the same set of integers.- Specified by:
mutableCopyin 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:IntSetAsk whether the set permits in-situ modifications using add() and remove() -
size
public int size()Description copied from class:IntSetGet the number of integers in the set -
isEmpty
public boolean isEmpty()Description copied from class:IntSetDetermine if the set is empty -
contains
public boolean contains(int value) Description copied from class:IntSetDetermine whether a particular integer is present in the set -
remove
public boolean remove(int value) Description copied from class:IntSetRemove 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
-