Package com.google.common.collect
Class TreeRangeSet<C extends java.lang.Comparable<?>>
- java.lang.Object
-
- com.google.common.collect.AbstractRangeSet<C>
-
- com.google.common.collect.TreeRangeSet<C>
-
- All Implemented Interfaces:
RangeSet<C>,java.io.Serializable
- Direct Known Subclasses:
TreeRangeSet.Complement,TreeRangeSet.SubRangeSet
public class TreeRangeSet<C extends java.lang.Comparable<?>> extends AbstractRangeSet<C> implements java.io.Serializable
An implementation ofRangeSetbacked by aTreeMap.- Since:
- 14.0
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classTreeRangeSet.AsRangesprivate classTreeRangeSet.Complementprivate static classTreeRangeSet.ComplementRangesByLowerBound<C extends java.lang.Comparable<?>>(package private) static classTreeRangeSet.RangesByUpperBound<C extends java.lang.Comparable<?>>private classTreeRangeSet.SubRangeSetprivate static classTreeRangeSet.SubRangeSetRangesByLowerBound<C extends java.lang.Comparable<?>>
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<Range<C>>asDescendingSetOfRangesprivate java.util.Set<Range<C>>asRangesprivate RangeSet<C>complement(package private) java.util.NavigableMap<Cut<C>,Range<C>>rangesByLowerBound
-
Constructor Summary
Constructors Modifier Constructor Description privateTreeRangeSet(java.util.NavigableMap<Cut<C>,Range<C>> rangesByLowerCut)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(Range<C> rangeToAdd)Adds the specified range to thisRangeSet(optional operation).java.util.Set<Range<C>>asDescendingSetOfRanges()Returns a descending view of the disconnected ranges that make up this range set.java.util.Set<Range<C>>asRanges()Returns a view of the disconnected ranges that make up this range set.RangeSet<C>complement()Returns a view of the complement of thisRangeSet.static <C extends java.lang.Comparable<?>>
TreeRangeSet<C>create()Creates an emptyTreeRangeSetinstance.static <C extends java.lang.Comparable<?>>
TreeRangeSet<C>create(RangeSet<C> rangeSet)Returns aTreeRangeSetinitialized with the ranges in the specified range set.static <C extends java.lang.Comparable<?>>
TreeRangeSet<C>create(java.lang.Iterable<Range<C>> ranges)Returns aTreeRangeSetrepresenting the union of the specified ranges.booleanencloses(Range<C> range)Returnstrueif there exists a member range in this range set which encloses the specified range.booleanintersects(Range<C> range)Returnstrueif there exists a non-empty range enclosed by both a member range in this range set and the specified range.Range<C>rangeContaining(C value)Returns the unique range from this range set that containsvalue, ornullif this range set does not containvalue.private Range<C>rangeEnclosing(Range<C> range)voidremove(Range<C> rangeToRemove)Removes the specified range from thisRangeSet(optional operation).private voidreplaceRangeWithSameLowerBound(Range<C> range)Range<C>span()Returns the minimal range which encloses all ranges in this range set.RangeSet<C>subRangeSet(Range<C> view)Returns a view of the intersection of thisRangeSetwith the specified range.-
Methods inherited from class com.google.common.collect.AbstractRangeSet
addAll, clear, contains, enclosesAll, equals, hashCode, isEmpty, removeAll, toString
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.google.common.collect.RangeSet
addAll, enclosesAll, removeAll
-
-
-
-
Method Detail
-
create
public static <C extends java.lang.Comparable<?>> TreeRangeSet<C> create()
Creates an emptyTreeRangeSetinstance.
-
create
public static <C extends java.lang.Comparable<?>> TreeRangeSet<C> create(RangeSet<C> rangeSet)
Returns aTreeRangeSetinitialized with the ranges in the specified range set.
-
create
public static <C extends java.lang.Comparable<?>> TreeRangeSet<C> create(java.lang.Iterable<Range<C>> ranges)
Returns aTreeRangeSetrepresenting the union of the specified ranges.This is the smallest
RangeSetwhich encloses each of the specified ranges. An element will be contained in thisRangeSetif and only if it is contained in at least oneRangeinranges.- Since:
- 21.0
-
asRanges
public java.util.Set<Range<C>> asRanges()
Description copied from interface:RangeSetReturns a view of the disconnected ranges that make up this range set. The returned set may be empty. The iterators returned by itsIterable.iterator()method return the ranges in increasing order of lower bound (equivalently, of upper bound).
-
asDescendingSetOfRanges
public java.util.Set<Range<C>> asDescendingSetOfRanges()
Description copied from interface:RangeSetReturns a descending view of the disconnected ranges that make up this range set. The returned set may be empty. The iterators returned by itsIterable.iterator()method return the ranges in decreasing order of lower bound (equivalently, of upper bound).- Specified by:
asDescendingSetOfRangesin interfaceRangeSet<C extends java.lang.Comparable<?>>
-
rangeContaining
public Range<C> rangeContaining(C value)
Description copied from interface:RangeSetReturns the unique range from this range set that containsvalue, ornullif this range set does not containvalue.- Specified by:
rangeContainingin interfaceRangeSet<C extends java.lang.Comparable<?>>- Specified by:
rangeContainingin classAbstractRangeSet<C extends java.lang.Comparable<?>>
-
intersects
public boolean intersects(Range<C> range)
Description copied from interface:RangeSetReturnstrueif there exists a non-empty range enclosed by both a member range in this range set and the specified range. This is equivalent to callingsubRangeSet(otherRange)and testing whether the resulting range set is non-empty.- Specified by:
intersectsin interfaceRangeSet<C extends java.lang.Comparable<?>>- Overrides:
intersectsin classAbstractRangeSet<C extends java.lang.Comparable<?>>
-
encloses
public boolean encloses(Range<C> range)
Description copied from interface:RangeSetReturnstrueif there exists a member range in this range set which encloses the specified range.
-
span
public Range<C> span()
Description copied from interface:RangeSetReturns the minimal range which encloses all ranges in this range set.
-
add
public void add(Range<C> rangeToAdd)
Description copied from interface:RangeSetAdds the specified range to thisRangeSet(optional operation). That is, for equal range sets a and b, the result ofa.add(range)is thatawill be the minimal range set for which botha.enclosesAll(b)anda.encloses(range).Note that
rangewill be coalesced with any ranges in the range set that are connected with it. Moreover, ifrangeis empty, this is a no-op.
-
remove
public void remove(Range<C> rangeToRemove)
Description copied from interface:RangeSetRemoves the specified range from thisRangeSet(optional operation). After this operation, ifrange.contains(c),this.contains(c)will returnfalse.If
rangeis empty, this is a no-op.
-
complement
public RangeSet<C> complement()
Description copied from interface:RangeSetReturns a view of the complement of thisRangeSet.The returned view supports the
RangeSet.add(com.google.common.collect.Range<C>)operation if thisRangeSetsupportsRangeSet.remove(com.google.common.collect.Range<C>), and vice versa.- Specified by:
complementin interfaceRangeSet<C extends java.lang.Comparable<?>>
-
subRangeSet
public RangeSet<C> subRangeSet(Range<C> view)
Description copied from interface:RangeSetReturns a view of the intersection of thisRangeSetwith the specified range.The returned view supports all optional operations supported by this
RangeSet, with the caveat that anIllegalArgumentExceptionis thrown on an attempt to add any range not enclosed byview.- Specified by:
subRangeSetin interfaceRangeSet<C extends java.lang.Comparable<?>>
-
-