Package: groovy.lang

## [Java] Class IntRange

- groovy.lang.IntRange

- All Implemented Interfaces and Traits:
    Range

      public class IntRange
      extends AbstractList

  Represents a list of Integer objects from a specified int up (or down) to and including a given to.

  This class is a copy of ObjectRange optimized for `int`. If you make any changes to this class, you might consider making parallel changes to ObjectRange. Instances of this class may be either inclusive aware or non-inclusive aware. See the relevant constructors for creating each type. Inclusive aware IntRange instances are suitable for use with Groovy's range indexing - in particular if the from or to values might be negative. This normally happens underneath the covers but is worth keeping in mind if creating these ranges yourself explicitly.

  Authors:
    James Strachan

- - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `def` | `IntRange(int from, int to)` Creates a new non-inclusive `IntRange`.
    `protected def` | `IntRange(int from, int to, boolean reverse)` Creates a new non-inclusive aware `IntRange`.
    `def` | `IntRange(boolean inclusive, int from, int to)` Creates a new inclusive aware `IntRange`.
    `boolean` | `contains(Object value)` {@inheritDoc}
    `boolean` | `containsAll(Collection other)` {@inheritDoc}
    `boolean` | `containsWithinBounds(Object o)`
    `boolean` | `equals(Object that)` Determines if this object is equal to another object.
    `boolean` | `equals(IntRange that)` Compares an IntRange to another IntRange.
    `Integer` | `get(int index)` {@inheritDoc}
    `Integer` | `getFrom()` {@inheritDoc}
    `int` | `getFromInt()` Gets the 'from' value as a primitive integer.
    `Boolean` | `getInclusive()` Returns the inclusive flag.
    `Integer` | `getTo()` {@inheritDoc}
    `int` | `getToInt()` Gets the 'to' value as a primitive integer.
    `String` | `inspect()` {@inheritDoc}
    `boolean` | `isReverse()` {@inheritDoc}
    `Iterator<Integer>` | `iterator()` {@inheritDoc}
    `int` | `size()` {@inheritDoc}
    `void` | `step(int step, Closure closure)` {@inheritDoc}
    `List<Integer>` | `step(int step)` {@inheritDoc}
    `List<Integer>` | `subList(int fromIndex, int toIndex)` {@inheritDoc}
    `RangeInfo` | `subListBorders(int size)` A method for determining from and to information when using this IntRange to index an aggregate object of the specified size.
    `String` | `toString()` {@inheritDoc}

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class AbstractList` | `add, add, remove, get, equals, hashCode, indexOf, clear, lastIndexOf, subList, addAll, iterator, set, listIterator, listIterator, remove, toString, contains, isEmpty, size, toArray, toArray, addAll, containsAll, removeAll, retainAll, wait, wait, wait, getClass, notify, notifyAll, size`
    `class AbstractCollection` | `add, remove, toString, clear, contains, isEmpty, size, toArray, toArray, addAll, iterator, containsAll, removeAll, retainAll, wait, wait, wait, equals, hashCode, getClass, notify, notifyAll`

- - ### Method Detail

    - #### public def IntRange(int from, int to)

      Creates a new non-inclusive `IntRange`. If `from` is greater than `to`, a reverse range is created with `from` and `to` swapped.

      throws:
        IllegalArgumentException if the range would contain more than Integer.MAX_VALUE values.
      Parameters:
        `from` - the first number in the range.
        `to` - the last number in the range.

    - #### protected def IntRange(int from, int to, boolean reverse)

      Creates a new non-inclusive aware `IntRange`.

      throws:
        IllegalArgumentException if `from` is greater than `to`.
      Parameters:
        `from` - the first value in the range.
        `to` - the last value in the range.
        `reverse` - `true` if the range should count from `to` to `from`.

    - #### public def IntRange(boolean inclusive, int from, int to)

      Creates a new inclusive aware `IntRange`.

      Parameters:
        `from` - the first value in the range.
        `to` - the last value in the range.
        `inclusive` - `true` if the to value is included in the range.

    - #### public boolean contains(Object value)

      {@inheritDoc}

    - #### public boolean containsAll(Collection other)

      {@inheritDoc}

    - #### public boolean containsWithinBounds(Object o)

    - #### public boolean equals(Object that)

      Determines if this object is equal to another object. Delegates to AbstractList.equals if `that` is anything other than an IntRange.

      It is not necessary to override `hashCode`, as AbstractList.hashCode provides a suitable hash code.

      Note that equals is generally handled by DefaultGroovyMethods.equals instead of this method.

      Parameters:
        `that` - the object to compare
      Returns:
        `true` if the objects are equal

    - #### public boolean equals(IntRange that)

      Compares an IntRange to another IntRange.

      Parameters:
        `that` - the object to compare for equality
      Returns:
        `true` if the ranges are equal

    - #### public Integer get(int index)

      {@inheritDoc}

    - #### public Integer getFrom()

      {@inheritDoc}

    - #### public int getFromInt()

      Gets the 'from' value as a primitive integer.

      Returns:
        the 'from' value as a primitive integer.

    - #### public Boolean getInclusive()

      Returns the inclusive flag. Null for non-inclusive aware ranges or non-null for inclusive aware ranges.

    - #### public Integer getTo()

      {@inheritDoc}

    - #### public int getToInt()

      Gets the 'to' value as a primitive integer.

      Returns:
        the 'to' value as a primitive integer.

    - #### public String inspect()

      {@inheritDoc}

    - #### public boolean isReverse()

      {@inheritDoc}

    - #### public Iterator<Integer> iterator()

      {@inheritDoc}

    - #### public int size()

      {@inheritDoc}

    - #### public void step(int step, Closure closure)

      {@inheritDoc}

    - #### public List<Integer> step(int step)

      {@inheritDoc}

    - #### public List<Integer> subList(int fromIndex, int toIndex)

      {@inheritDoc}

    - #### public RangeInfo subListBorders(int size)

      A method for determining from and to information when using this IntRange to index an aggregate object of the specified size. Normally only used internally within Groovy but useful if adding range indexing support for your own aggregates.

      Parameters:
        `size` - the size of the aggregate being indexed
      Returns:
        the calculated range information (with 1 added to the to value, ready for providing to subList

    - #### public String toString()

      {@inheritDoc}