Package it.unimi.dsi.util
Class Interval
- java.lang.Object
-
- java.util.AbstractCollection<java.lang.Integer>
-
- it.unimi.dsi.fastutil.ints.AbstractIntCollection
-
- it.unimi.dsi.fastutil.ints.AbstractIntSet
-
- it.unimi.dsi.fastutil.ints.AbstractIntSortedSet
-
- it.unimi.dsi.util.Interval
-
- All Implemented Interfaces:
it.unimi.dsi.fastutil.ints.IntBidirectionalIterable,it.unimi.dsi.fastutil.ints.IntCollection,it.unimi.dsi.fastutil.ints.IntIterable,it.unimi.dsi.fastutil.ints.IntSet,it.unimi.dsi.fastutil.ints.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 it.unimi.dsi.fastutil.ints.AbstractIntSortedSet implements it.unimi.dsi.fastutil.ints.IntSortedSet, java.io.SerializableAn interval of integers. An interval is defined by two integers, called itsleftandrightextremes, and contains all integers x such thatleft≤ x ≤right.This class has no constructor: use the static factory methods
valueOf(int, int)andvalueOf(int), instead.Instances of this class are immutable, and moreover implement the
IntSortedSetinterface. 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.
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedInterval(int left, int right)Builds an interval with given extremes.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description it.unimi.dsi.fastutil.ints.IntComparatorcomparator()intcompareTo(int x)Compares this interval to an integer.intcompareTo(int x, int radius)Compares this interval to an integer with a specified radius.intcompareTo(int x, int leftRadius, int rightRadius)Compares this interval to an integer with specified left and right radii.booleancontains(int x)Checks whether this interval contains the specified integer.booleancontains(int x, int radius)Checks whether this interval would contain the specified integer if enlarged in both directions by the specified radius.booleancontains(int x, int leftRadius, int rightRadius)Checks whether this interval would contain the specified integer if enlarged in each direction with the respective radius.booleancontains(Interval interval)Checks whether this interval contains the specified interval.booleanequals(java.lang.Object o)Checks whether this interval is equal to another set of integers.intfirstInt()inthashCode()it.unimi.dsi.fastutil.ints.IntSortedSetheadSet(int to)it.unimi.dsi.fastutil.ints.IntBidirectionalIteratoriterator()Returns an iterator over the integers in this interval.it.unimi.dsi.fastutil.ints.IntBidirectionalIteratoriterator(int from)Returns an iterator over the integers in this interval larger than or equal to a given integer.intlastInt()intlength()Returns the interval length, that is, the number of integers contained in the interval.intsize()An alias forlength().it.unimi.dsi.fastutil.ints.IntSortedSetsubSet(int from, int to)it.unimi.dsi.fastutil.ints.IntSortedSettailSet(int from)java.lang.StringtoString()static IntervalvalueOf(int point)Returns a one-point interval.static IntervalvalueOf(int left, int right)Returns an interval with given extremes.-
Methods inherited from class it.unimi.dsi.fastutil.ints.AbstractIntCollection
add, add, addAll, addAll, contains, containsAll, containsAll, forEach, remove, removeAll, removeAll, removeIf, retainAll, retainAll, toArray, toIntArray, toIntArray
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface it.unimi.dsi.fastutil.ints.IntCollection
add, addAll, containsAll, intIterator, intParallelStream, intSpliterator, intStream, parallelStream, removeAll, removeIf, removeIf, removeIf, retainAll, stream, toArray, toIntArray, toIntArray
-
Methods inherited from interface it.unimi.dsi.fastutil.ints.IntSet
add, contains, rem, remove, remove
-
-
-
-
Constructor Detail
-
Interval
protected Interval(int left, int right)Builds an interval with given extremes.You cannot generate an empty interval with this constructor. Use
Intervals.EMPTY_INTERVALinstead.- Parameters:
left- the left extreme.right- the right extreme (which must be greater than or equal to the left extreme).
-
-
Method Detail
-
valueOf
public static Interval valueOf(int left, int right)
Returns an interval with given extremes.You cannot obtain an empty interval with this factory method. Use
Intervals.EMPTY_INTERVALinstead.- Parameters:
left- the left extreme.right- the right extreme (which must be greater than or equal to the left extreme).- Returns:
- an interval with the given extremes.
-
valueOf
public static Interval valueOf(int point)
Returns a one-point interval.You cannot obtain an empty interval with this factory method. Use
Intervals.EMPTY_INTERVALinstead.- Parameters:
point- a point.- Returns:
- a one-point interval
-
length
public int length()
Returns the interval length, that is, the number of integers contained in the interval.- Returns:
- the interval length.
-
size
public int size()
An alias forlength().- Specified by:
sizein interfacejava.util.Collection<java.lang.Integer>- Specified by:
sizein interfacejava.util.Set<java.lang.Integer>- Specified by:
sizein classjava.util.AbstractCollection<java.lang.Integer>- Returns:
- the interval length.
-
iterator
public it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator()
Returns an iterator over the integers in this interval.- Specified by:
iteratorin interfacejava.util.Collection<java.lang.Integer>- Specified by:
iteratorin interfaceit.unimi.dsi.fastutil.ints.IntBidirectionalIterable- Specified by:
iteratorin interfaceit.unimi.dsi.fastutil.ints.IntCollection- Specified by:
iteratorin interfaceit.unimi.dsi.fastutil.ints.IntIterable- Specified by:
iteratorin interfaceit.unimi.dsi.fastutil.ints.IntSet- Specified by:
iteratorin interfaceit.unimi.dsi.fastutil.ints.IntSortedSet- Specified by:
iteratorin interfacejava.lang.Iterable<java.lang.Integer>- Specified by:
iteratorin interfacejava.util.Set<java.lang.Integer>- Specified by:
iteratorin classit.unimi.dsi.fastutil.ints.AbstractIntSortedSet- Returns:
- an integer iterator over the elements in this interval.
-
iterator
public it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator(int from)
Returns an iterator over the integers in this interval larger than or equal to a given integer.- Specified by:
iteratorin interfaceit.unimi.dsi.fastutil.ints.IntSortedSet- Parameters:
from- the starting integer.- Returns:
- an integer iterator over the elements in this interval.
-
contains
public boolean contains(int x)
Checks whether this interval contains the specified integer.
-
contains
public boolean contains(Interval interval)
Checks whether this interval contains the specified interval.- Parameters:
interval- an interval.- Returns:
- whether this interval contains (as a set)
interval.
-
contains
public boolean contains(int x, int radius)Checks whether this interval would contain the specified integer if enlarged in both directions by the specified radius.
-
contains
public 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. directions by the specified radius.
-
compareTo
public int compareTo(int x)
Compares this interval to an integer.
-
compareTo
public int compareTo(int x, int radius)Compares this interval to an integer with a specified radius.
-
compareTo
public int compareTo(int x, int leftRadius, int rightRadius)Compares this interval to an integer with specified left and right radii.- Parameters:
x- an integer.leftRadius- the left radius.rightRadius- the right radius.- Returns:
- a negative integer, zero, or a positive integer as
xis positioned at the left, belongs, or is positioned to the right of this interval enlarged byleftRadiuson the left andrightRadiusin the right, that is, asx<left−leftRadius,left−leftRadius≤x≤right+rightRadiusorright+rightRadius<x.
-
comparator
public it.unimi.dsi.fastutil.ints.IntComparator comparator()
- Specified by:
comparatorin interfaceit.unimi.dsi.fastutil.ints.IntSortedSet- Specified by:
comparatorin interfacejava.util.SortedSet<java.lang.Integer>
-
headSet
public it.unimi.dsi.fastutil.ints.IntSortedSet headSet(int to)
- Specified by:
headSetin interfaceit.unimi.dsi.fastutil.ints.IntSortedSet
-
tailSet
public it.unimi.dsi.fastutil.ints.IntSortedSet tailSet(int from)
- Specified by:
tailSetin interfaceit.unimi.dsi.fastutil.ints.IntSortedSet
-
subSet
public it.unimi.dsi.fastutil.ints.IntSortedSet subSet(int from, int to)- Specified by:
subSetin interfaceit.unimi.dsi.fastutil.ints.IntSortedSet
-
firstInt
public int firstInt()
- Specified by:
firstIntin interfaceit.unimi.dsi.fastutil.ints.IntSortedSet
-
lastInt
public int lastInt()
- Specified by:
lastIntin interfaceit.unimi.dsi.fastutil.ints.IntSortedSet
-
toString
public java.lang.String toString()
- Overrides:
toStringin classit.unimi.dsi.fastutil.ints.AbstractIntCollection
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacejava.util.Collection<java.lang.Integer>- Specified by:
hashCodein interfacejava.util.Set<java.lang.Integer>- Overrides:
hashCodein classit.unimi.dsi.fastutil.ints.AbstractIntSet
-
equals
public boolean equals(java.lang.Object o)
Checks whether this interval is equal to another set of integers.- Specified by:
equalsin interfacejava.util.Collection<java.lang.Integer>- Specified by:
equalsin interfacejava.util.Set<java.lang.Integer>- Overrides:
equalsin classit.unimi.dsi.fastutil.ints.AbstractIntSet- Parameters:
o- an object.- Returns:
- true if
ois an ordered set of integer containing the same element of this interval in the same order, or ifois a set of integers containing the same elements of this interval.
-
-