Package net.sf.saxon.z
Class IntRangeSet
- java.lang.Object
-
- net.sf.saxon.z.IntSet
-
- net.sf.saxon.z.IntRangeSet
-
public class IntRangeSet extends IntSet
Set of int values. This implementation of IntSet uses a sorted array of integer ranges.
-
-
Constructor Summary
Constructors Constructor Description IntRangeSet()
Create 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
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 setIntSet
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[]
getEndPoints()
Get the end points of the rangesint
getNumberOfRanges()
Get the number of ranges actually in useint[]
getStartPoints()
Get the start points of the rangesint
hashCode()
Construct a hash key that supports the equals() testboolean
isEmpty()
Determine if the set is emptyboolean
isMutable()
Ask whether the set permits in-situ modifications using add() and remove()IntIterator
iterator()
Get an iterator over the valuesIntSet
mutableCopy()
Create 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 setjava.lang.String
toString()
-
Methods inherited from class net.sf.saxon.z.IntSet
containsAll, except, intersect, union
-
-
-
-
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 rangesendPoints
- 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 class:IntSet
Clear the contents of the IntSet (making it an empty set)
-
copy
public IntSet copy()
Description copied from class:IntSet
Create a copy of this IntSet that leaves the original unchanged.
-
mutableCopy
public IntSet 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
public IntIterator iterator()
Get an iterator over the values
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.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 classjava.lang.Object
-
hashCode
public int hashCode()
Construct a hash key that supports the equals() test- Overrides:
hashCode
in classjava.lang.Object
-
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
-
-