## groovy.lang
Class IntRange

    java.lang.Object
      java.util.AbstractCollection
          java.util.AbstractList
              groovy.lang.IntRange

All Implemented Interfaces:
  Range, Iterable, Collection, List

    public class IntRange

extends AbstractList
implements Range

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`.

Version:
  $Revision: 6817 $
Author:
  James Strachan

Field Summary

Fields inherited from class java.util.AbstractList
`modCount`

Constructor Summary
`` `IntRange(int from, int to)` Creates a new `IntRange`.
`protected` `IntRange(int from, int to, boolean reverse)` Creates a new `IntRange`.

Method Summary
`boolean` `contains(Object value)`
`boolean` `containsAll(Collection other)`
`boolean` `containsWithinBounds(Object o)` Indicates whether this is a reverse range which iterates backwards starting from the to value and ending on the from value
`boolean` `equals(IntRange that)` Compares an `IntRange` to another `IntRange`.
`boolean` `equals(Object that)` Determines if this object is equal to another object.
`Object` `get(int index)`
`Comparable` `getFrom()` Gets the lower value in the range.
`int` `getFromInt()` Gets the 'from' value as an integer.
`Comparable` `getTo()` Gets the lower value in the range.
`int` `getToInt()` Gets the 'to' value as an integer.
`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
`Iterator` `iterator()`
`int` `size()`
`List` `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.
`List` `subList(int fromIndex, int toIndex)`
`String` `toString()`

Methods inherited from class java.util.AbstractList
`add, add, addAll, clear, hashCode, indexOf, lastIndexOf, listIterator, listIterator, remove, removeRange, set`

Methods inherited from class java.util.AbstractCollection
`addAll, isEmpty, remove, removeAll, retainAll, toArray, toArray`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface java.util.List
`add, add, addAll, addAll, clear, hashCode, indexOf, isEmpty, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, retainAll, set, toArray, toArray`

Constructor Detail

### IntRange

    public IntRange(int from,
                    int to)

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

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

### IntRange

    protected IntRange(int from,
                       int to,
                       boolean reverse)

  Creates a new `IntRange`.

  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`.
  Throws:
    `IllegalArgumentException` - if `from` is greater than `to`.

Method Detail

### equals

    public boolean equals(Object that)

  Determines if this object is equal to another object. Delegates to `AbstractList.equals(Object)` if `that` is anthing 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(List,List)` instead of this method.

  Specified by:
    `equals` in interface `Collection`
  Specified by:
    `equals` in interface `List`
  Overrides:
    `equals` in class `AbstractList`
  Parameters:
    `that` - the object to compare
  Returns:
    `true` if the objects are equal

### equals

    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

### getFrom

    public Comparable getFrom()

  Gets the lower value in the range.

  Specified by:
    `getFrom` in interface `Range`
  Returns:
    the lower value in the range.

### getTo

    public Comparable getTo()

  Gets the lower value in the range.

  Specified by:
    `getTo` in interface `Range`
  Returns:
    the upper value in the range

### getFromInt

    public int getFromInt()

  Gets the 'from' value as an integer.

  Returns:
    the 'from' value as an integer.

### getToInt

    public int getToInt()

  Gets the 'to' value as an integer.

  Returns:
    the 'to' value as an integer.

### isReverse

    public boolean isReverse()

  Indicates whether this is a reverse range which iterates backwards starting from the to value and ending on the from value

  Specified by:
    `isReverse` in interface `Range`
  Returns:
    `true` if this is a reverse range

### containsWithinBounds

    public boolean containsWithinBounds(Object o)

  Description copied from interface: `Range`
  Indicates whether this is a reverse range which iterates backwards starting from the to value and ending on the from value

  Specified by:
    `containsWithinBounds` in interface `Range`
  Parameters:
    `o` - the object to check against the boundaries of the range
  Returns:
    `true` if the object is between the from and to values

### get

    public Object get(int index)

  Specified by:
    `get` in interface `List`
  Specified by:
    `get` in class `AbstractList`

### size

    public int size()

  Specified by:
    `size` in interface `Collection`
  Specified by:
    `size` in interface `List`
  Specified by:
    `size` in class `AbstractCollection`

### iterator

    public Iterator iterator()

  Specified by:
    `iterator` in interface `Iterable`
  Specified by:
    `iterator` in interface `Collection`
  Specified by:
    `iterator` in interface `List`
  Overrides:
    `iterator` in class `AbstractList`

### subList

    public List subList(int fromIndex,
                        int toIndex)

  Specified by:
    `subList` in interface `List`
  Overrides:
    `subList` in class `AbstractList`

### toString

    public String toString()

  Overrides:
    `toString` in class `AbstractCollection`

### inspect

    public String inspect()

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

### contains

    public boolean contains(Object value)

  Specified by:
    `contains` in interface `Collection`
  Specified by:
    `contains` in interface `List`
  Overrides:
    `contains` in class `AbstractCollection`

### containsAll

    public boolean containsAll(Collection other)

  Specified by:
    `containsAll` in interface `Collection`
  Specified by:
    `containsAll` in interface `List`
  Overrides:
    `containsAll` in class `AbstractCollection`

### step

    public void step(int step,
                     Closure closure)

  Steps through the range, calling a closure for each number.

  Specified by:
    `step` in interface `Range`
  Parameters:
    `step` - the amount by which to step. If negative, steps through the range backwards.
    `closure` - the `Closure` to call

### step

    public List step(int step)

  Forms a list by stepping through the range by the indicated interval.

  Specified by:
    `step` in interface `Range`
  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.

Copyright © 2003-2008 The Codehaus. All rights reserved.