Class 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.Serializable
    An interval of integers. An interval is defined by two integers, called its 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.

    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      int left
      The left extreme of the interval.
      int right
      The right extreme of the interval.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Interval​(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.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()  
      it.unimi.dsi.fastutil.ints.IntSortedSet headSet​(int to)  
      it.unimi.dsi.fastutil.ints.IntBidirectionalIterator iterator()
      Returns an iterator over the integers in this interval.
      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.
      int lastInt()  
      int length()
      Returns the interval length, that is, the number of integers contained in the interval.
      int size()
      An alias for length().
      it.unimi.dsi.fastutil.ints.IntSortedSet subSet​(int from, int to)  
      it.unimi.dsi.fastutil.ints.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.
      • Methods inherited from class it.unimi.dsi.fastutil.ints.AbstractIntSet

        rem, remove
      • 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.util.AbstractCollection

        clear, isEmpty, toArray, toArray
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        toArray
      • 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.IntIterable

        forEach, forEach, forEach
      • Methods inherited from interface it.unimi.dsi.fastutil.ints.IntSet

        add, contains, rem, remove, remove
      • Methods inherited from interface it.unimi.dsi.fastutil.ints.IntSortedSet

        first, headSet, last, spliterator, subSet, tailSet
      • Methods inherited from interface java.util.Set

        add, addAll, clear, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray
    • Field Detail

      • left

        public final int left
        The left extreme of the interval.
      • right

        public final int right
        The right extreme of the interval.
    • 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_INTERVAL instead.

        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_INTERVAL instead.

        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_INTERVAL instead.

        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 for length().
        Specified by:
        size in interface java.util.Collection<java.lang.Integer>
        Specified by:
        size in interface java.util.Set<java.lang.Integer>
        Specified by:
        size in class java.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:
        iterator in interface java.util.Collection<java.lang.Integer>
        Specified by:
        iterator in interface it.unimi.dsi.fastutil.ints.IntBidirectionalIterable
        Specified by:
        iterator in interface it.unimi.dsi.fastutil.ints.IntCollection
        Specified by:
        iterator in interface it.unimi.dsi.fastutil.ints.IntIterable
        Specified by:
        iterator in interface it.unimi.dsi.fastutil.ints.IntSet
        Specified by:
        iterator in interface it.unimi.dsi.fastutil.ints.IntSortedSet
        Specified by:
        iterator in interface java.lang.Iterable<java.lang.Integer>
        Specified by:
        iterator in interface java.util.Set<java.lang.Integer>
        Specified by:
        iterator in class it.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:
        iterator in interface it.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.
        Specified by:
        contains in interface it.unimi.dsi.fastutil.ints.IntCollection
        Overrides:
        contains in class it.unimi.dsi.fastutil.ints.AbstractIntCollection
        Parameters:
        x - an integer.
        Returns:
        whether this interval contains x, that is, whether leftxright.
      • 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.
        Parameters:
        x - an integer.
        radius - the radius.
        Returns:
        whether this interval enlarged by radius would contain x, e.g., whether leftradiusxright+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.
        Parameters:
        x - an integer.
        leftRadius - the left radius.
        rightRadius - the right radius.
        Returns:
        whether this interval enlarged to the left by leftRadius and to the right by rightRadius would contain x, e.g., whether leftleftRadiusxright+rightRadius.
      • compareTo

        public int compareTo​(int x)
        Compares this interval to an integer.
        Parameters:
        x - an integer.
        Returns:
        a negative integer, zero, or a positive integer as x is positioned at the left, belongs, or is positioned to the right of this interval, e.g., as x < left, leftxright or right < x.
      • compareTo

        public int compareTo​(int x,
                             int radius)
        Compares this interval to an integer with a specified radius.
        Parameters:
        x - an integer.
        radius - the radius.
        Returns:
        a negative integer, zero, or a positive integer as x is positioned at the left, belongs, or is positioned to the right of this interval enlarged by radius, that is, as x < leftradius, leftradiusxright+radius or right+radius < x.
      • 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 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 < leftleftRadius, leftleftRadiusxright+rightRadius or right+rightRadius < x.
      • comparator

        public it.unimi.dsi.fastutil.ints.IntComparator comparator()
        Specified by:
        comparator in interface it.unimi.dsi.fastutil.ints.IntSortedSet
        Specified by:
        comparator in interface java.util.SortedSet<java.lang.Integer>
      • headSet

        public it.unimi.dsi.fastutil.ints.IntSortedSet headSet​(int to)
        Specified by:
        headSet in interface it.unimi.dsi.fastutil.ints.IntSortedSet
      • tailSet

        public it.unimi.dsi.fastutil.ints.IntSortedSet tailSet​(int from)
        Specified by:
        tailSet in interface it.unimi.dsi.fastutil.ints.IntSortedSet
      • subSet

        public it.unimi.dsi.fastutil.ints.IntSortedSet subSet​(int from,
                                                              int to)
        Specified by:
        subSet in interface it.unimi.dsi.fastutil.ints.IntSortedSet
      • firstInt

        public int firstInt()
        Specified by:
        firstInt in interface it.unimi.dsi.fastutil.ints.IntSortedSet
      • lastInt

        public int lastInt()
        Specified by:
        lastInt in interface it.unimi.dsi.fastutil.ints.IntSortedSet
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class it.unimi.dsi.fastutil.ints.AbstractIntCollection
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface java.util.Collection<java.lang.Integer>
        Specified by:
        hashCode in interface java.util.Set<java.lang.Integer>
        Overrides:
        hashCode in class it.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:
        equals in interface java.util.Collection<java.lang.Integer>
        Specified by:
        equals in interface java.util.Set<java.lang.Integer>
        Overrides:
        equals in class it.unimi.dsi.fastutil.ints.AbstractIntSet
        Parameters:
        o - an object.
        Returns:
        true if 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.