IntBidirectionalIterable
, IntCollection
, IntIterable
, IntSet
, IntSortedSet
, java.io.Serializable
, java.lang.Cloneable
, java.lang.Iterable<java.lang.Integer>
, java.util.Collection<java.lang.Integer>
, java.util.Set<java.lang.Integer>
, java.util.SortedSet<java.lang.Integer>
public final class Interval extends AbstractIntSortedSet implements IntSortedSet, java.io.Serializable
left
and right
extremes, and contains all integers x such that
left
≤ x ≤ right
.
This class has no constructor: use the static factory methods
valueOf(int, int)
and valueOf(int)
, instead.
Instances of this class are immutable, and moreover implement
the IntSortedSet
interface. The
equality method allows to check equality with
both sorted and non-sorted sets of integers.
To reduce garbage collection, intervals made of one non-negative small points are precomputed and returned upon request.
Modifier and Type | Field | Description |
---|---|---|
int |
left |
The left extreme of the interval.
|
int |
right |
The right extreme of the interval.
|
Modifier | Constructor | Description |
---|---|---|
protected |
Interval(int left,
int right) |
Builds an interval with given extremes.
|
Modifier and Type | Method | Description |
---|---|---|
IntComparator |
comparator() |
|
int |
compareTo(int x) |
Compares this interval to an integer.
|
int |
compareTo(int x,
int radius) |
Compares this interval to an integer with a specified radius.
|
int |
compareTo(int x,
int leftRadius,
int rightRadius) |
Compares this interval to an integer with specified left and right radii.
|
boolean |
contains(int x) |
Checks whether this interval contains the specified integer.
|
boolean |
contains(int x,
int radius) |
Checks whether this interval would contain the specified integer if enlarged in both
directions by the specified radius.
|
boolean |
contains(int x,
int leftRadius,
int rightRadius) |
Checks whether this interval would contain the specified integer if enlarged in each
direction with the respective radius.
|
boolean |
contains(Interval interval) |
Checks whether this interval contains the specified interval.
|
boolean |
equals(java.lang.Object o) |
Checks whether this interval is equal to another set of integers.
|
int |
firstInt() |
|
int |
hashCode() |
|
IntSortedSet |
headSet(int to) |
|
IntBidirectionalIterator |
iterator() |
Returns an iterator over the integers in this interval.
|
IntBidirectionalIterator |
iterator(int from) |
Returns an iterator over the integers in this interval larger than or equal to a given integer.
|
int |
lastInt() |
|
int |
length() |
Returns the interval length, that is, the number of integers
contained in the interval.
|
int |
size() |
An alias for
length() . |
IntSortedSet |
subSet(int from,
int to) |
|
IntSortedSet |
tailSet(int from) |
|
java.lang.String |
toString() |
|
static Interval |
valueOf(int point) |
Returns a one-point interval.
|
static Interval |
valueOf(int left,
int right) |
Returns an interval with given extremes.
|
addAll, clear, containsAll, isEmpty, removeAll, retainAll, toArray, toArray
add, add, addAll, contains, containsAll, remove, removeAll, retainAll, toArray, toIntArray, toIntArray
rem, remove
add, addAll, containsAll, removeAll, removeIf, removeIf, retainAll, toArray, toIntArray, toIntArray
forEach, forEach
add, contains, rem, remove, remove
first, headSet, last, subSet, tailSet
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
public final int left
public final int right
protected Interval(int left, int right)
You cannot generate an empty interval with this constructor. Use Intervals.EMPTY_INTERVAL
instead.
left
- the left extreme.right
- the right extreme (which must be greater than
or equal to the left extreme).public static Interval valueOf(int left, int right)
You cannot obtain an empty interval with this factory method. Use Intervals.EMPTY_INTERVAL
instead.
left
- the left extreme.right
- the right extreme (which must be greater than
or equal to the left extreme).public static Interval valueOf(int point)
You cannot obtain an empty interval with this factory method. Use Intervals.EMPTY_INTERVAL
instead.
point
- a point.public int length()
public int size()
length()
.size
in interface java.util.Collection<java.lang.Integer>
size
in interface java.util.Set<java.lang.Integer>
size
in class java.util.AbstractCollection<java.lang.Integer>
public IntBidirectionalIterator iterator()
iterator
in interface java.util.Collection<java.lang.Integer>
iterator
in interface IntBidirectionalIterable
iterator
in interface IntCollection
iterator
in interface IntIterable
iterator
in interface IntSet
iterator
in interface IntSortedSet
iterator
in interface java.lang.Iterable<java.lang.Integer>
iterator
in interface java.util.Set<java.lang.Integer>
iterator
in class AbstractIntSortedSet
public IntBidirectionalIterator iterator(int from)
iterator
in interface IntSortedSet
from
- the starting integer.public boolean contains(int x)
contains
in interface IntCollection
contains
in class AbstractIntCollection
x
- an integer.x
, that is,
whether left
≤ x
≤ right
.public boolean contains(Interval interval)
interval
- an interval.interval
.public boolean contains(int x, int radius)
public boolean contains(int x, int leftRadius, int rightRadius)
public int compareTo(int x)
public int compareTo(int x, int radius)
public int compareTo(int x, int leftRadius, int rightRadius)
x
- an integer.leftRadius
- the left radius.rightRadius
- the right radius.x
is positioned
at the left, belongs, or is positioned to the right of this interval enlarged by leftRadius
on the left and rightRadius
in the right, that is,
as x
< left
−leftRadius
,
left
−leftRadius
≤ x
≤ right
+rightRadius
or
right
+rightRadius
< x
.public IntComparator comparator()
comparator
in interface IntSortedSet
comparator
in interface java.util.SortedSet<java.lang.Integer>
public IntSortedSet headSet(int to)
headSet
in interface IntSortedSet
public IntSortedSet tailSet(int from)
tailSet
in interface IntSortedSet
public IntSortedSet subSet(int from, int to)
subSet
in interface IntSortedSet
public int firstInt()
firstInt
in interface IntSortedSet
public int lastInt()
lastInt
in interface IntSortedSet
public java.lang.String toString()
toString
in class AbstractIntCollection
public int hashCode()
hashCode
in interface java.util.Collection<java.lang.Integer>
hashCode
in interface java.util.Set<java.lang.Integer>
hashCode
in class AbstractIntSet
public boolean equals(java.lang.Object o)
equals
in interface java.util.Collection<java.lang.Integer>
equals
in interface java.util.Set<java.lang.Integer>
equals
in class AbstractIntSet
o
- an object.o
is an ordered set of integer containing
the same element of this interval in the same order, or if o
is a set of integers containing the same elements of this interval.