Class IntegerRange

All Implemented Interfaces:
Serializable

public final class IntegerRange extends NumberRange<Integer>
Specializes NumberRange for Integers.

This class is not designed to interoperate with other NumberRanges

Since:
3.13.0
See Also:
  • Method Details

    • of

      public static IntegerRange of(int fromInclusive, int toInclusive)
      Creates a closed range with the specified minimum and maximum values (both inclusive).

      The range uses the natural ordering of the elements to determine where values lie in the range.

      The arguments may be passed in the order (min,max) or (max,min). The getMinimum and getMaximum methods will return the correct values.

      Parameters:
      fromInclusive - the first value that defines the edge of the range, inclusive.
      toInclusive - the second value that defines the edge of the range, inclusive.
      Returns:
      the range object, not null.
    • of

      public static IntegerRange of(Integer fromInclusive, Integer toInclusive)
      Creates a closed range with the specified minimum and maximum values (both inclusive).

      The range uses the natural ordering of the elements to determine where values lie in the range.

      The arguments may be passed in the order (min,max) or (max,min). The getMinimum and getMaximum methods will return the correct values.

      Parameters:
      fromInclusive - the first value that defines the edge of the range, inclusive.
      toInclusive - the second value that defines the edge of the range, inclusive.
      Returns:
      the range object, not null.
      Throws:
      IllegalArgumentException - if either element is null.
    • fit

      public int fit(int element)
      Fits the given value into this range by returning the given value or, if out of bounds, the range minimum if below, or the range maximum if above.
      
       IntegerRange range = IntegerRange.of(16, 64);
       range.fit(-9) -->  16
       range.fit(0)  -->  16
       range.fit(15) -->  16
       range.fit(16) -->  16
       range.fit(17) -->  17
       ...
       range.fit(63) -->  63
       range.fit(64) -->  64
       range.fit(99) -->  64
       
      Parameters:
      element - the element to test.
      Returns:
      the minimum, the element, or the maximum depending on the element's location relative to the range.
      Since:
      3.19.0
    • toIntStream

      Returns a sequential ordered IntStream from Range.getMinimum() (inclusive) to Range.getMaximum() (inclusive) by an incremental step of 1.
      Returns:
      a sequential IntStream for the range of int elements
      Since:
      3.18.0