Package 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
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 booleanadd(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 setbooleancontainsAll(IntSet other)Test if this set is a superset of another setbooleanequals(java.lang.Object other)Test whether this set has exactly the same members as another set.int[]getEndPoints()Get the end points of the rangesintgetNumberOfRanges()Get the number of ranges actually in useint[]getStartPoints()Get the start points of the rangesinthashCode()Construct a hash key that supports the equals() testbooleanisEmpty()Determine if the set is emptyIntIteratoriterator()Get an iterator over the valuesbooleanremove(int value)Remove an integer from the setintsize()Get the number of integers in the setjava.lang.StringtoString()
-
-
-
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 interface:IntSetClear the contents of the IntSet (making it an empty set)
-
size
public int size()
Description copied from interface:IntSetGet the number of integers in the set
-
isEmpty
public boolean isEmpty()
Description copied from interface:IntSetDetermine if the set is empty
-
contains
public boolean contains(int value)
Description copied from interface:IntSetDetermine whether a particular integer is present in the set
-
remove
public boolean remove(int value)
Description copied from interface:IntSetRemove 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:
toStringin 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:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
Construct a hash key that supports the equals() test- Overrides:
hashCodein classjava.lang.Object
-
containsAll
public boolean containsAll(IntSet other)
Test if this set is a superset of another set- Specified by:
containsAllin 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
-
-