Class IntRange
- All Implemented Interfaces:
Range<Integer>,Iterable<Integer>,Collection<Integer>,List<Integer>,SequencedCollection<Integer>
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.
-
Field Summary
Fields inherited from class java.util.AbstractList
modCount -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanbooleancontainsAll(Collection other) booleanIndicates whether an object is greater than or equal to thefromvalue for the range and less than or equal to thetovalue.booleanbooleanDetermines if this object is equal to another object.get(int index) getFrom()The lower value in the range.intGets the 'from' value as a primitive integer.Returns the inclusive flag.getTo()The upper value in the range.intgetToInt()Gets the 'to' value as a primitive integer.inthashCode()inspect()booleanIndicates whether this is a reverse range which iterates backwards starting from the to value and ending on the from valueiterator()intsize()step(int step) Forms a list by stepping through the range by the indicated interval.voidSteps through the range, calling a closure for each number.subList(int fromIndex, int toIndex) subListBorders(int size) A method for determining from and to information when using this IntRange to index an aggregate object of the specified size.toString()Methods inherited from class java.util.AbstractList
add, add, addAll, clear, indexOf, lastIndexOf, listIterator, listIterator, remove, removeRange, setMethods inherited from class java.util.AbstractCollection
addAll, isEmpty, remove, removeAll, retainAll, toArray, toArrayMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArrayMethods inherited from interface java.util.List
add, add, addAll, addAll, addFirst, addLast, clear, getFirst, getLast, indexOf, isEmpty, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeFirst, removeLast, replaceAll, retainAll, reversed, set, sort, spliterator, toArray, toArray
-
Constructor Details
-
IntRange
public IntRange(int from, int to) Creates a new non-inclusiveIntRange. Iffromis greater thanto, a reverse range is created withfromandtoswapped.- Parameters:
from- the first number in the range.to- the last number in the range.- Throws:
IllegalArgumentException- if the range would contain more thanInteger.MAX_VALUEvalues.
-
IntRange
protected IntRange(int from, int to, boolean reverse) Creates a new non-inclusive awareIntRange.- Parameters:
from- the first value in the range.to- the last value in the range.reverse-trueif the range should count fromtotofrom.- Throws:
IllegalArgumentException- iffromis greater thanto.
-
IntRange
public IntRange(boolean inclusive, int from, int to) Creates a new inclusive awareIntRange.- Parameters:
inclusive-trueif the to value is included in the range.from- the first value in the range.to- the last value in the range.
-
-
Method Details
-
subListBorders
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
-
equals
Determines if this object is equal to another object. Delegates toAbstractList.equals(Object)ifthatis anything other than anIntRange.It is not necessary to override
hashCode, asAbstractList.hashCode()provides a suitable hash code.Note that equals is generally handled by
DefaultGroovyMethods.equals(List,List)instead of this method.- Specified by:
equalsin interfaceCollection<Integer>- Specified by:
equalsin interfaceList<Integer>- Overrides:
equalsin classAbstractList<Integer>- Parameters:
that- the object to compare- Returns:
trueif the objects are equal
-
equals
- Parameters:
that- the object to compare for equality- Returns:
trueif the ranges are equal
-
getFrom
Description copied from interface:RangeThe lower value in the range. -
getTo
Description copied from interface:RangeThe upper value in the range. -
getInclusive
Returns the inclusive flag. Null for non-inclusive aware ranges or non-null for inclusive aware ranges. -
getFromInt
public int getFromInt()Gets the 'from' value as a primitive integer.- Returns:
- the 'from' value as a primitive integer.
-
getToInt
public int getToInt()Gets the 'to' value as a primitive integer.- Returns:
- the 'to' value as a primitive integer.
-
isReverse
public boolean isReverse()Description copied from interface:RangeIndicates whether this is a reverse range which iterates backwards starting from the to value and ending on the from value -
containsWithinBounds
Description copied from interface:RangeIndicates whether an object is greater than or equal to thefromvalue for the range and less than or equal to thetovalue.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
- Specified by:
containsWithinBoundsin interfaceRange<Integer>- Parameters:
o- the object to check against the boundaries of the range- Returns:
trueif the object is between the from and to values
-
get
-
size
public int size()- Specified by:
sizein interfaceCollection<Integer>- Specified by:
sizein interfaceList<Integer>- Specified by:
sizein classAbstractCollection<Integer>
-
iterator
-
subList
-
toString
- Overrides:
toStringin classAbstractCollection<Integer>
-
inspect
-
contains
- Specified by:
containsin interfaceCollection<Integer>- Specified by:
containsin interfaceList<Integer>- Overrides:
containsin classAbstractCollection<Integer>
-
containsAll
- Specified by:
containsAllin interfaceCollection<Integer>- Specified by:
containsAllin interfaceList<Integer>- Overrides:
containsAllin classAbstractCollection<Integer>
-
step
Description copied from interface:RangeSteps through the range, calling a closure for each number. -
step
Description copied from interface:RangeForms a list by stepping through the range by the indicated interval. -
hashCode
public int hashCode()- Specified by:
hashCodein interfaceCollection<Integer>- Specified by:
hashCodein interfaceList<Integer>- Overrides:
hashCodein classAbstractList<Integer>
-