T - The type of range elements.public class RangeSet<T extends Comparable<? super T>> extends AbstractSet<Range<T>> implements SortedSet<Range<T>>, Cloneable, Serializable
RangeSet objects store an arbitrary number of ranges in any Java's primitives (int, float, etc.) or any comparable objects. Ranges may be added in any order. When a range is added, RangeSet
first looks for an existing range overlapping the specified range. If an overlapping range is
found, ranges are merged as of Range.union(org.geotools.util.Range<?>). Consequently, ranges returned by iterator() may not be the same than added ranges.
All entries in this set can be seen as Range objects. This class is
not thread-safe.
| Constructor and Description |
|---|
RangeSet(Class<T> type)
Constructs an empty set of range.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(byte lower,
byte upper)
Add a range of values to this set.
|
<N> boolean |
add(Comparable<? super N> min,
Comparable<? super N> max)
Adds a range of values to this set.
|
boolean |
add(double lower,
double upper)
Add a range of values to this set.
|
boolean |
add(float lower,
float upper)
Add a range of values to this set.
|
boolean |
add(int lower,
int upper)
Add a range of values to this set.
|
boolean |
add(long lower,
long upper)
Add a range of values to this set.
|
boolean |
add(Range<T> range)
Add a range to this set.
|
boolean |
add(short lower,
short upper)
Add a range of values to this set.
|
void |
clear()
Remove all elements from this set of ranges.
|
RangeSet |
clone()
Returns a clone of this range set.
|
Comparator<Range<T>> |
comparator()
Returns the comparator associated with this sorted set.
|
boolean |
contains(Object object)
Returns
true if this set contains the specified element. |
boolean |
equals(Object object)
Compares the specified object with this set of ranges for equality.
|
Range<T> |
first()
Returns the first (lowest) range currently in this sorted set.
|
double |
getMaxValueAsDouble(int index)
Returns a range's maximum value as a
double. |
double |
getMinValueAsDouble(int index)
Returns a range's minimum value as a
double. |
int |
hashCode()
Returns a hash value for this set of ranges.
|
SortedSet<Range<T>> |
headSet(Range<T> upper)
Returns a view of the portion of this sorted set whose elements are strictly less than
upper. |
int |
indexOfRange(Comparable value)
If the specified value is inside a range, returns the index of this range.
|
Iterator<Range<T>> |
iterator()
Returns an iterator over the elements in this set of ranges.
|
Range<T> |
last()
Returns the last (highest) range currently in this sorted set.
|
boolean |
remove(byte lower,
byte upper)
Remove a range of values from this set.
|
<N> boolean |
remove(Comparable<? super N> min,
Comparable<? super N> max)
Remove a range of values from this set.
|
boolean |
remove(double lower,
double upper)
Remove a range of values from this set.
|
boolean |
remove(float lower,
float upper)
Remove a range of values from this set.
|
boolean |
remove(int lower,
int upper)
Remove a range of values from this set.
|
boolean |
remove(long lower,
long upper)
Remove a range of values from this set.
|
boolean |
remove(short lower,
short upper)
Remove a range of values from this set.
|
int |
size()
Returns the number of ranges in this set.
|
SortedSet<Range<T>> |
subSet(Range<T> lower,
Range<T> upper)
Returns a view of the portion of this sorted set whose elements range from
lower,
inclusive, to upper, exclusive. |
SortedSet<Range<T>> |
tailSet(Range<T> lower)
Returns a view of the portion of this sorted set whose elements are greater than or equal to
lower. |
String |
toString()
Returns a string representation of this set of ranges.
|
removeAlladdAll, containsAll, isEmpty, remove, retainAll, toArray, toArrayspliteratoraddAll, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArrayparallelStream, removeIf, streampublic RangeSet(Class<T> type) throws IllegalArgumentException
type - The class of the range elements. It must be a primitive type or a class
implementing Comparable.IllegalArgumentException - if type is not a primitive type or a class
implementing Comparable.public Comparator<Range<T>> comparator()
comparator in interface SortedSet<Range<T extends Comparable<? super T>>>public void clear()
clear in interface Collection<Range<T extends Comparable<? super T>>>clear in interface Set<Range<T extends Comparable<? super T>>>clear in class AbstractCollection<Range<T extends Comparable<? super T>>>public int size()
size in interface Collection<Range<T extends Comparable<? super T>>>size in interface Set<Range<T extends Comparable<? super T>>>size in class AbstractCollection<Range<T extends Comparable<? super T>>>public boolean add(Range<T> range)
Range.union(org.geotools.util.Range<?>).
Note: current version do not support open interval (i.e. Range.is[Min/Max]Included() must return true).
add in interface Collection<Range<T extends Comparable<? super T>>>add in interface Set<Range<T extends Comparable<? super T>>>add in class AbstractCollection<Range<T extends Comparable<? super T>>>range - The range to add.true if this set changed as a result of the call.public <N> boolean add(Comparable<? super N> min, Comparable<? super N> max) throws IllegalArgumentException
min - The lower value, inclusive.max - The upper value, inclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean add(byte lower,
byte upper)
throws IllegalArgumentException
lower - The lower value, inclusive.upper - The upper value, inclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean add(short lower,
short upper)
throws IllegalArgumentException
lower - The lower value, inclusive.upper - The upper value, inclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean add(int lower,
int upper)
throws IllegalArgumentException
lower - The lower value, inclusive.upper - The upper value, inclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean add(long lower,
long upper)
throws IllegalArgumentException
lower - The lower value, inclusive.upper - The upper value, inclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean add(float lower,
float upper)
throws IllegalArgumentException
lower - The lower value, inclusive.upper - The upper value, inclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean add(double lower,
double upper)
throws IllegalArgumentException
lower - The lower value, inclusive.upper - The upper value, inclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public <N> boolean remove(Comparable<? super N> min, Comparable<? super N> max) throws IllegalArgumentException
min - The lower value to remove, exclusive.max - The upper value to remove, exclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean remove(byte lower,
byte upper)
throws IllegalArgumentException
lower - The lower value to remove, exclusive.upper - The upper value to remove, exclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean remove(short lower,
short upper)
throws IllegalArgumentException
lower - The lower value to remove, exclusive.upper - The upper value to remove, exclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean remove(int lower,
int upper)
throws IllegalArgumentException
lower - The lower value to remove, exclusive.upper - The upper value to remove, exclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean remove(long lower,
long upper)
throws IllegalArgumentException
lower - The lower value to remove, exclusive.upper - The upper value to remove, exclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean remove(float lower,
float upper)
throws IllegalArgumentException
lower - The lower value to remove, exclusive.upper - The upper value to remove, exclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public boolean remove(double lower,
double upper)
throws IllegalArgumentException
lower - The lower value to remove, exclusive.upper - The upper value to remove, exclusive.true if this set changed as a result of the call.IllegalArgumentException - if lower is greater than upper.public final double getMinValueAsDouble(int index)
throws IndexOutOfBoundsException,
ClassCastException
double. The
index can be any value from 0 inclusive to the set's size exclusive.
The returned values always increase with index.index - The range index, from 0 inclusive to size exclusive.IndexOutOfBoundsException - if index is out of bounds.ClassCastException - if range elements are not convertible to numbers.public final double getMaxValueAsDouble(int index)
throws IndexOutOfBoundsException,
ClassCastException
double. The
index can be any value from 0 inclusive to the set's size exclusive.
The returned values always increase with index.index - The range index, from 0 inclusive to size exclusive.IndexOutOfBoundsException - if index is out of bounds.ClassCastException - if range elements are not convertible to numbers.public int indexOfRange(Comparable value)
-1.value - The value to search.public boolean contains(Object object)
true if this set contains the specified element.contains in interface Collection<Range<T extends Comparable<? super T>>>contains in interface Set<Range<T extends Comparable<? super T>>>contains in class AbstractCollection<Range<T extends Comparable<? super T>>>object - The object to compare to this set.true if the given object is equals to this set.public Range<T> first() throws NoSuchElementException
first in interface SortedSet<Range<T extends Comparable<? super T>>>NoSuchElementException - if the set is empty.public Range<T> last() throws NoSuchElementException
last in interface SortedSet<Range<T extends Comparable<? super T>>>NoSuchElementException - if the set is empty.public SortedSet<Range<T>> subSet(Range<T> lower, Range<T> upper)
lower,
inclusive, to upper, exclusive.public SortedSet<Range<T>> headSet(Range<T> upper)
upper.public SortedSet<Range<T>> tailSet(Range<T> lower)
lower.public Iterator<Range<T>> iterator()
Range
objects.iterator in interface Iterable<Range<T extends Comparable<? super T>>>iterator in interface Collection<Range<T extends Comparable<? super T>>>iterator in interface Set<Range<T extends Comparable<? super T>>>iterator in class AbstractCollection<Range<T extends Comparable<? super T>>>public int hashCode()
hashCode in interface Collection<Range<T extends Comparable<? super T>>>hashCode in interface Set<Range<T extends Comparable<? super T>>>hashCode in class AbstractSet<Range<T extends Comparable<? super T>>>public boolean equals(Object object)
equals in interface Collection<Range<T extends Comparable<? super T>>>equals in interface Set<Range<T extends Comparable<? super T>>>equals in class AbstractSet<Range<T extends Comparable<? super T>>>object - The object to compare with this range.true if the given object is equals to this range.public RangeSet clone()
clone in class ObjectObject.clone()public String toString()
toString in class AbstractCollection<Range<T extends Comparable<? super T>>>Copyright © 1996–2019 Geotools. All rights reserved.