Package manifold.collections.api.range
Class AbstractIterableRange<E extends Comparable<E>,S,U,ME extends AbstractIterableRange<E,S,U,ME>>
- java.lang.Object
-
- manifold.collections.api.range.AbstractRange<E,ME>
-
- manifold.collections.api.range.AbstractIterableRange<E,S,U,ME>
-
- All Implemented Interfaces:
Iterable<E>,IterableRange<E,S,U,ME>,Range<E,ME>
- Direct Known Subclasses:
NumberRange,SequentialRange
public abstract class AbstractIterableRange<E extends Comparable<E>,S,U,ME extends AbstractIterableRange<E,S,U,ME>> extends AbstractRange<E,ME> implements IterableRange<E,S,U,ME>
-
-
Constructor Summary
Constructors Constructor Description AbstractIterableRange(E left, E right, S step)AbstractIterableRange(E left, E right, S step, U unit, boolean leftClosed, boolean rightClosed, boolean reverse)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object o)SgetStep()UgetUnit()inthashCode()Iterator<E>iterator()MEstep(S s)StringtoString()MEunit(U u)-
Methods inherited from class manifold.collections.api.range.AbstractRange
contains, contains, getLeftEndpoint, getRightEndpoint, isLeftClosed, isReversed, isRightClosed
-
Methods inherited from class java.lang.Object
clone, emptyArray, finalize, getClass, jailbreak, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
count, count, distinctBy, distinctList, filterIndexedTo, filterIndexedToList, filterNotTo, filterNotToList, filterTo, filterToList, first, first, firstOrNull, firstOrNull, flatMap, flatMapTo, fold, forEach, forEachIndexed, indexOfFirst, indexOfLast, intersect, joinTo, joinToString, last, last, lastOrNull, lastOrNull, mapIndexed, mapIndexedNotNull, mapIndexedNotNullTo, mapIndexedNotNullToList, mapIndexedTo, mapIndexedToList, mapNotNull, mapNotNullTo, mapNotNullToList, mapTo, mapToList, maxWith, minWith, partition, reversed, single, single, singleOrNull, singleOrNull, spliterator, subList, subList, subtract, toList, toSet, union
-
Methods inherited from interface manifold.collections.api.range.IterableRange
getFromLeft, getFromRight, iterateFromLeft, iterateFromRight
-
Methods inherited from interface manifold.collections.api.range.Range
contains, contains, getLeftEndpoint, getRightEndpoint, isLeftClosed, isReversed, isRightClosed
-
-
-
-
Method Detail
-
iterator
public Iterator<E> iterator()
- Specified by:
iteratorin interfaceIterable<E extends Comparable<E>>- Specified by:
iteratorin interfaceIterableRange<E extends Comparable<E>,S,U,ME extends AbstractIterableRange<E,S,U,ME>>- Returns:
- An iterator that visits the elements in this range in order, from left to right. Returns null if this range does not support iteration.
- See Also:
IterableRange.iterateFromLeft(),IterableRange.iterateFromRight()
-
getStep
public S getStep()
- Specified by:
getStepin interfaceIterableRange<E extends Comparable<E>,S,U,ME extends AbstractIterableRange<E,S,U,ME>>- Returns:
- The step (or increment) by which this range visits elements in its set. Returns null
if this range cannot iterate its elements.
For instance, if the range is a set of decimal values, say [1..10], the step might be a decimal increment, say 0.25. Similarly, if the range is simply a set of integers the step might also be an integer value, typically 1. Considering a date range, say [4/5/10..5/20/10], the step could be expressed in terms of a unit of time e.g., 10 seconds, 1 minute, 2 weeks, etc.
Note if non-null, the step is a positive (or absolute) increment. To iterate the range in reverse order use iterateFromRight().
-
step
public ME step(S s)
- Specified by:
stepin interfaceIterableRange<E extends Comparable<E>,S,U,ME extends AbstractIterableRange<E,S,U,ME>>
-
getUnit
public U getUnit()
- Specified by:
getUnitin interfaceIterableRange<E extends Comparable<E>,S,U,ME extends AbstractIterableRange<E,S,U,ME>>
-
unit
public ME unit(U u)
- Specified by:
unitin interfaceIterableRange<E extends Comparable<E>,S,U,ME extends AbstractIterableRange<E,S,U,ME>>
-
equals
public boolean equals(Object o)
- Overrides:
equalsin classAbstractRange<E extends Comparable<E>,ME extends AbstractIterableRange<E,S,U,ME>>
-
hashCode
public int hashCode()
- Overrides:
hashCodein classAbstractRange<E extends Comparable<E>,ME extends AbstractIterableRange<E,S,U,ME>>
-
toString
public String toString()
- Overrides:
toStringin classAbstractRange<E extends Comparable<E>,ME extends AbstractIterableRange<E,S,U,ME>>
-
-