groovy.lang

## Interface Range<T extends java.lang.Comparable>

- All Superinterfaces:
    java.util.Collection<T>, java.lang.Iterable<T>, java.util.List<T>
  All Known Implementing Classes:
    EmptyRange, IntRange, ObjectRange

      public interface Range<T extends java.lang.Comparable>
      extends java.util.List<T>

  A Range represents the list of all items obtained by starting from a `from` value and calling `next()` successively until you reach the `to` value. For a reverse range, the list is obtained by starting at the `to` value and successively calling `previous()` until the `from` value is reached.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `containsWithinBounds(java.lang.Object o)` Indicates whether an object is greater than or equal to the `from` value for the range and less than or equal to the `to` value.
    `T` | `getFrom()` The lower value in the range.
    `T` | `getTo()` The upper value in the range.
    `java.lang.String` | `inspect()`
    `boolean` | `isReverse()` Indicates whether this is a reverse range which iterates backwards starting from the to value and ending on the from value
    `java.util.List<T>` | `step(int step)` Forms a list by stepping through the range by the indicated interval.
    `void` | `step(int step, Closure closure)` Steps through the range, calling a closure for each number.

    - ### Methods inherited from interface java.util.List

      `add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray`

    - ### Methods inherited from interface java.util.Collection

      `parallelStream, removeIf, stream`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach`

- - ### Method Detail

    - #### getFrom

          T getFrom()

      The lower value in the range.
      Returns:
        the lower value in the range.

    - #### getTo

          T getTo()

      The upper value in the range.
      Returns:
        the upper value in the range

    - #### isReverse

          boolean isReverse()

      Indicates whether this is a reverse range which iterates backwards starting from the to value and ending on the from value
      Returns:
        `true` if this is a reverse range

    - #### containsWithinBounds

          boolean containsWithinBounds(java.lang.Object o)

      Indicates whether an object is greater than or equal to the `from` value for the range and less than or equal to the `to` value.

      This may be true even for values not contained in the range.

      Example: from = 1.5 , to = 3, next() increments by 1 containsWithinBounds(2) == true contains(2) == false

      Parameters:
        `o` - the object to check against the boundaries of the range
      Returns:
        `true` if the object is between the from and to values

    - #### step

          void step(int step,
                    Closure closure)

      Steps through the range, calling a closure for each number.
      Parameters:
        `step` - the amount by which to step. If negative, steps through the range backwards.
        `closure` - the `Closure` to call

    - #### step

          java.util.List<T> step(int step)

      Forms a list by stepping through the range by the indicated interval.
      Parameters:
        `step` - the amount by which to step. If negative, steps through the range backwards.
      Returns:
        the list formed by stepping through the range by the indicated interval.

    - #### inspect

          java.lang.String inspect()

      Returns:
        the verbose `String` representation of this `Range` as would be typed into a console to create the `Range` instance