Class Interval
java.lang.Object
org.eclipse.collections.impl.AbstractRichIterable<Integer>
org.eclipse.collections.impl.lazy.AbstractLazyIterable<Integer>
org.eclipse.collections.impl.list.Interval
- All Implemented Interfaces:
Serializable, Iterable<Integer>, Collection<Integer>, List<Integer>, RandomAccess, SequencedCollection<Integer>, InternalIterable<Integer>, LazyIterable<Integer>, RichIterable<Integer>
public final class Interval
extends AbstractLazyIterable<Integer>
implements List<Integer>, Serializable, RandomAccess
An Interval is a range of integers that may be iterated over using a step value. Interval
is an OO implementation of a for-loop.
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final intprivate static final longprivate intprivate final intprivate final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbooleanbooleanaddAll(int index, Collection<? extends Integer> collection) booleanaddAll(Collection<? extends Integer> collection) <R extends Collection<Integer>>
RaddAllTo(R targetCollection) private BigIntegerReturns the BigInteger result of calculating product for the range.by(int newStep) This instancebymethod allows Interval to act as a fluent builder for itself.private voidcheckBounds(String name, int index) voidclear()<T, R extends Collection<T>>
RSame asRichIterable.collect(Function), except that the results are gathered into the specifiedtargetcollection.booleancontains(int value) Returns true if the Interval contains the specified int value.booleanReturns true if the iterable has an element which responds true to element.equals(object).booleancontainsAll(int... values) Returns true if the Interval contains all the specified int values.booleancontainsNone(int... values) Returns true if the Interval contains none of the specified int values.distinct()Creates a deferred distinct iterable to get distinct elements from the current iterable.drop(int count) Creates a deferred drop iterable for the current iterable using the specified count as the limit.voidThe procedure is executed for each element in the iterable.booleanstatic IntervalevensFromTo(int from, int to) Returns an Interval representing the even values from the value from to the value to.private voidexecuteAndCountdown(Procedure<? super Integer> procedure, Executor executor, CountDownLatch latch, Integer integer) Returns the Number result of calculating factorial for the range.private voidvoidforEach(IntProcedure procedure) voidvoidThis method executes a void procedure against an executor, passing the current index of the interval.<P> voidforEachWith(IntObjectProcedure<? super P> procedure, P parameter) <P> voidforEachWith(Procedure2<? super Integer, ? super P> procedure, P parameter) The procedure2 is evaluated for each element in the iterable with the specified parameter provided as the second argument.voidforEachWithIndex(IntIntProcedure procedure) voidforEachWithIndex(ObjectIntProcedure<? super Integer> objectIntProcedure) Iterates over the iterable passing each element and the current relative int index to the specified instance of ObjectIntProcedure.voidforEachWithIndex(ObjectIntProcedure<? super Integer> objectIntProcedure, int startIndex, int endIndex) static Intervalfrom(int newFrom) This staticfrommethod allows Interval to act as a fluent builder for itself.static IntervalfromTo(int from, int to) Returns an Interval starting from the value from to the specified value to with a step value of 1.static IntervalfromToBy(int from, int to, int stepBy) Returns an Interval for the range of integers inclusively between from and to with the specified stepBy value.static IntervalfromToExclusive(int from, int to) Returns an Interval starting from the value from until the specified value to (exclusive) with a step value of 1.get(int index) getFirst()Returns the first element of an iterable.getLast()Returns the last element of an iterable.private booleaninthashCode()intdoubleinjectInto(double injectedValue, DoubleObjectToDoubleFunction<? super Integer> function) Returns the final double result of evaluating function using each element of the iterable and the previous evaluation result as the parameters.intinjectInto(int injectedValue, IntObjectToIntFunction<? super Integer> function) Returns the final int result of evaluating function using each element of the iterable and the previous evaluation result as the parameters.longinjectInto(long injectedValue, LongObjectToLongFunction<? super Integer> function) Returns the final long result of evaluating function using each element of the iterable and the previous evaluation result as the parameters.<R> RinjectInto(R injectValue, Function2<? super R, ? super Integer, ? extends R> function) Returns the final result of evaluating function using each element of the iterable and the previous evaluation result as the parameters.private booleanintObjectNotEqual(int i, Object object) iterator()intlastIndexOf(Object object) listIterator(int index) static IntervaloddsFromTo(int from, int to) Returns an Interval representing the odd values from the value from to the value to.static IntervaloneTo(int count) Returns an Interval starting from 1 to the specified count value with a step value of 1.static IntervaloneToBy(int count, int step) Returns an Interval starting from 1 to the specified count value with a step value of step.product()Returns the Number result of calculating product for the range.private void<R extends Collection<Integer>>
RSame as the reject method with one parameter but uses the specified target collection for the results.remove(int index) booleanbooleanremoveAll(Collection<?> collection) booleanretainAll(Collection<?> collection) voidreverseForEach(Procedure<? super Integer> procedure) <R> RreverseInjectInto(R injectValue, Function2<? super R, Integer, ? extends R> function) Returns a new interval with the from and to values reversed and the step value negated.voidThis method runs a runnable a specified number of times against on the current thread.voidThis method runs a runnable a specified number of times against an executor.<R extends Collection<Integer>>
RSame as the select method with one parameter but uses the specified target collection for the results.intsize()Returns the size of the interval.subList(int fromIndex, int toIndex) take(int count) Creates a deferred take iterable for the current iterable using the specified count as the limit.to(int newTo) This instancetomethod allows Interval to act as a fluent builder for itself.Integer[]toArray()Converts this iterable to an array.static Integer[]toArray(int from, int to) Returns an Integer array with the values inclusively between from and to.<E> E[]toArray(E[] array) Converts this iterable to an array using the specified target array, assuming the target array is as long or longer than the iterable.toBag()Converts the collection to the default MutableBag implementation.int[]Converts the interval to an Integer array.toList()Converts the collection to a MutableList implementation.static Integer[]toReverseArray(int from, int to) static MutableList<Integer> toReverseList(int from, int to) Returns a MutableList representing the Integer values from the value from to the value to in reverse.toSet()Converts the collection to a MutableSet implementation.static MutableSet<Integer> toSet(int from, int to) Returns a Set representing the Integer values from the value from to the value to.toString()Returns a string with the elements of the iterable separated by commas with spaces and enclosed in square brackets.private intvalueAtIndex(int index) static Intervalzero()Returns an Interval starting at zero.static IntervalzeroTo(int count) Returns an Interval starting from 0 to the specified count value with a step value of 1.static IntervalzeroToBy(int count, int step) Returns an Interval starting from 0 to the specified count value with a step value of step.Methods inherited from class AbstractLazyIterable
asLazy, chunk, collect, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectIf, collectInt, collectLong, collectShort, collectWith, concatenate, dropWhile, flatCollect, getOnly, groupBy, groupByEach, groupByUniqueKey, into, isEmpty, maxByOptional, maxOptional, maxOptional, minByOptional, minOptional, minOptional, partition, partitionWith, reject, rejectWith, select, selectInstancesOf, selectWith, sumByDouble, sumByFloat, sumByInt, sumByLong, takeWhile, tap, toStack, zip, zipWithIndexMethods inherited from class AbstractRichIterable
allSatisfy, allSatisfyWith, anySatisfy, anySatisfyWith, appendString, appendString, collectIf, collectWith, containsAll, containsAllArguments, containsAllIterable, count, countByEach, countWith, detect, detectOptional, detectWith, detectWithIfNone, detectWithOptional, flatCollect, forEach, groupBy, groupByEach, groupByUniqueKey, injectInto, max, max, maxBy, min, min, minBy, noneSatisfy, noneSatisfyWith, rejectWith, selectWith, sumOfDouble, sumOfFloat, sumOfInt, sumOfLong, toBiMap, toMap, toSortedBag, toSortedBag, toSortedBagBy, toSortedListBy, toSortedMap, toSortedMap, toSortedMapBy, toSortedSet, toSortedSet, toSortedSetBy, zip, zipWithIndexMethods inherited from interface Collection
parallelStream, removeIf, stream, toArrayMethods inherited from interface InternalIterable
forEachMethods inherited from interface LazyIterable
flatCollectWith, toImmutableBag, toImmutableList, toImmutableSetMethods inherited from interface List
addFirst, addLast, containsAll, isEmpty, removeFirst, removeLast, replaceAll, reversed, sort, spliteratorMethods inherited from interface RichIterable
aggregateBy, aggregateBy, aggregateInPlaceBy, allSatisfy, allSatisfyWith, anySatisfy, anySatisfyWith, appendString, appendString, appendString, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectIf, collectInt, collectLong, collectShort, collectWith, containsAll, containsAllArguments, containsAllIterable, containsAny, containsAnyIterable, containsBy, containsNone, containsNoneIterable, count, countBy, countBy, countByEach, countByEach, countByWith, countByWith, countWith, detect, detectIfNone, detectOptional, detectWith, detectWithIfNone, detectWithOptional, flatCollect, flatCollectBoolean, flatCollectByte, flatCollectChar, flatCollectDouble, flatCollectFloat, flatCollectInt, flatCollectLong, flatCollectShort, flatCollectWith, forEach, getAny, groupBy, groupByAndCollect, groupByEach, groupByUniqueKey, injectInto, injectIntoDouble, injectIntoFloat, injectIntoInt, injectIntoLong, makeString, makeString, makeString, makeString, max, max, maxBy, min, min, minBy, noneSatisfy, noneSatisfyWith, notEmpty, reduce, reduceBy, reduceBy, reduceInPlace, reduceInPlace, rejectWith, selectWith, summarizeDouble, summarizeFloat, summarizeInt, summarizeLong, sumOfDouble, sumOfFloat, sumOfInt, sumOfLong, toBiMap, toImmutableBiMap, toImmutableMap, toImmutableSortedBag, toImmutableSortedBag, toImmutableSortedBagBy, toImmutableSortedList, toImmutableSortedList, toImmutableSortedListBy, toImmutableSortedSet, toImmutableSortedSet, toImmutableSortedSetBy, toMap, toMap, toSortedBag, toSortedBag, toSortedBagBy, toSortedList, toSortedList, toSortedListBy, toSortedMap, toSortedMap, toSortedMapBy, toSortedSet, toSortedSet, toSortedSetBy, zip, zipWithIndex
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
from
private final int from -
to
private final int to -
step
private final int step -
size
private transient int size
-
-
Constructor Details
-
Interval
private Interval(int from, int to, int step)
-
-
Method Details
-
from
This staticfrommethod allows Interval to act as a fluent builder for itself. It works in conjunction with the instance methodsto(int)andby(int).Usage Example:
Interval interval1 = Interval.from(1).to(5); // results in: 1, 2, 3, 4, 5. Interval interval2 = Interval.from(1).to(10).by(2); // results in: 1, 3, 5, 7, 9.
-
to
This instancetomethod allows Interval to act as a fluent builder for itself. It works in conjunction with the static methodfrom(int)and instance methodby(int).Usage Example:
Interval interval1 = Interval.from(1).to(5); // results in: 1, 2, 3, 4, 5. Interval interval2 = Interval.from(1).to(10).by(2); // results in: 1, 3, 5, 7, 9.
-
by
This instancebymethod allows Interval to act as a fluent builder for itself. It works in conjunction with the static methodfrom(int)and instance methodto(int).Usage Example:
Interval interval1 = Interval.from(1).to(5); // results in: 1, 2, 3, 4, 5. Interval interval2 = Interval.from(1).to(10).by(2); // results in: 1, 3, 5, 7, 9.
-
zero
Returns an Interval starting at zero.Usage Example:
Interval interval1 = Interval.zero().to(5); // results in: 0, 1, 2, 3, 4, 5. Interval interval2 = Interval.zero().to(10).by(2); // results in: 0, 2, 4, 6, 8, 10.
-
oneTo
Returns an Interval starting from 1 to the specified count value with a step value of 1. -
oneToBy
Returns an Interval starting from 1 to the specified count value with a step value of step. -
zeroTo
Returns an Interval starting from 0 to the specified count value with a step value of 1. -
zeroToBy
Returns an Interval starting from 0 to the specified count value with a step value of step. -
fromTo
Returns an Interval starting from the value from to the specified value to with a step value of 1. -
fromToExclusive
Returns an Interval starting from the value from until the specified value to (exclusive) with a step value of 1. -
evensFromTo
Returns an Interval representing the even values from the value from to the value to. -
oddsFromTo
Returns an Interval representing the odd values from the value from to the value to. -
toSet
Returns a Set representing the Integer values from the value from to the value to. -
toReverseList
Returns a MutableList representing the Integer values from the value from to the value to in reverse. -
toArray
Returns an Integer array with the values inclusively between from and to. -
toReverseArray
-
fromToBy
Returns an Interval for the range of integers inclusively between from and to with the specified stepBy value. -
containsAll
public boolean containsAll(int... values) Returns true if the Interval contains all the specified int values. -
containsNone
public boolean containsNone(int... values) Returns true if the Interval contains none of the specified int values. -
contains
Description copied from interface:RichIterableReturns true if the iterable has an element which responds true to element.equals(object).- Specified by:
containsin interfaceCollection<Integer>- Specified by:
containsin interfaceList<Integer>- Specified by:
containsin interfaceRichIterable<Integer>- Overrides:
containsin classAbstractRichIterable<Integer>
-
contains
public boolean contains(int value) Returns true if the Interval contains the specified int value. -
factorial
Returns the Number result of calculating factorial for the range. -
product
Returns the Number result of calculating product for the range. -
bigIntegerProduct
Returns the BigInteger result of calculating product for the range. -
failIfOutOfFactorialRange
private void failIfOutOfFactorialRange() -
forEachWithIndex
-
forEachWithIndex
Description copied from interface:InternalIterableIterates over the iterable passing each element and the current relative int index to the specified instance of ObjectIntProcedure.Example using a Java 8 lambda:
people.forEachWithIndex((Person person, int index) -> LOGGER.info("Index: " + index + " person: " + person.getName()));Example using an anonymous inner class:
people.forEachWithIndex(new ObjectIntProcedure<Person>() { public void value(Person person, int index) { LOGGER.info("Index: " + index + " person: " + person.getName()); } });- Specified by:
forEachWithIndexin interfaceInternalIterable<Integer>- Overrides:
forEachWithIndexin classAbstractRichIterable<Integer>
-
forEachWith
-
goForward
private boolean goForward() -
forEachWith
Description copied from interface:InternalIterableThe procedure2 is evaluated for each element in the iterable with the specified parameter provided as the second argument.Example using a Java 8 lambda:
people.forEachWith((Person person, Person other) -> { if (person.isRelatedTo(other)) { LOGGER.info(person.getName()); } }, fred);Example using an anonymous inner class:
people.forEachWith(new Procedure2<Person, Person>() { public void value(Person person, Person other) { if (person.isRelatedTo(other)) { LOGGER.info(person.getName()); } } }, fred);- Specified by:
forEachWithin interfaceInternalIterable<Integer>- Overrides:
forEachWithin classAbstractRichIterable<Integer>
-
forEach
-
each
Description copied from interface:RichIterableThe procedure is executed for each element in the iterable.Example using a Java 8 lambda expression:
people.each(person -> LOGGER.info(person.getName()));
This method is a variant ofInternalIterable.forEach(Procedure)that has a signature conflict withIterable.forEach(java.util.function.Consumer).- Specified by:
eachin interfaceRichIterable<Integer>- See Also:
-
forEach
-
executeAndCountdown
private void executeAndCountdown(Procedure<? super Integer> procedure, Executor executor, CountDownLatch latch, Integer integer) -
run
This method runs a runnable a specified number of times against on the current thread. -
run
-
injectInto
Description copied from interface:RichIterableReturns the final result of evaluating function using each element of the iterable and the previous evaluation result as the parameters. The injected value is used for the first parameter of the first evaluation, and the current item in the iterable is used as the second parameter. This method is commonly called fold or sometimes reduce.- Specified by:
injectIntoin interfaceRichIterable<Integer>- Overrides:
injectIntoin classAbstractRichIterable<Integer>
-
injectInto
Description copied from interface:RichIterableReturns the final int result of evaluating function using each element of the iterable and the previous evaluation result as the parameters. The injected value is used for the first parameter of the first evaluation, and the current item in the iterable is used as the second parameter.- Specified by:
injectIntoin interfaceRichIterable<Integer>- Overrides:
injectIntoin classAbstractRichIterable<Integer>
-
injectInto
Description copied from interface:RichIterableReturns the final long result of evaluating function using each element of the iterable and the previous evaluation result as the parameters. The injected value is used for the first parameter of the first evaluation, and the current item in the iterable is used as the second parameter.- Specified by:
injectIntoin interfaceRichIterable<Integer>- Overrides:
injectIntoin classAbstractRichIterable<Integer>
-
injectInto
public double injectInto(double injectedValue, DoubleObjectToDoubleFunction<? super Integer> function) Description copied from interface:RichIterableReturns the final double result of evaluating function using each element of the iterable and the previous evaluation result as the parameters. The injected value is used for the first parameter of the first evaluation, and the current item in the iterable is used as the second parameter.- Specified by:
injectIntoin interfaceRichIterable<Integer>- Overrides:
injectIntoin classAbstractRichIterable<Integer>
-
reverseForEach
-
reverseInjectInto
-
addAllTo
-
collect
public <T, R extends Collection<T>> R collect(Function<? super Integer, ? extends T> function, R target) Description copied from interface:RichIterableSame asRichIterable.collect(Function), except that the results are gathered into the specifiedtargetcollection.Example using a Java 8 lambda expression:
MutableList<String> names = people.collect(person -> person.getFirstName() + " " + person.getLastName(), Lists.mutable.empty());- Specified by:
collectin interfaceRichIterable<Integer>- Overrides:
collectin classAbstractRichIterable<Integer>- Parameters:
function- aFunctionto use as the collect transformation functiontarget- the Collection to append to for all elements in thisRichIterablethat meet select criteriafunction- Returns:
target, which contains appended elements as a result of the collect transformation- See Also:
-
select
Description copied from interface:RichIterableSame as the select method with one parameter but uses the specified target collection for the results.Example using a Java 8 lambda expression:
MutableList<Person> selected = people.select(person -> person.person.getLastName().equals("Smith"), Lists.mutable.empty());- Specified by:
selectin interfaceRichIterable<Integer>- Overrides:
selectin classAbstractRichIterable<Integer>- Parameters:
predicate- aPredicateto use as the select criteriatarget- the Collection to append to for all elements in thisRichIterablethat meet select criteriapredicate- Returns:
target, which contains appended elements as a result of the select criteria- See Also:
-
reject
Description copied from interface:RichIterableSame as the reject method with one parameter but uses the specified target collection for the results.Example using a Java 8 lambda expression:
MutableList<Person> rejected = people.reject(person -> person.person.getLastName().equals("Smith"), Lists.mutable.empty());- Specified by:
rejectin interfaceRichIterable<Integer>- Overrides:
rejectin classAbstractRichIterable<Integer>- Parameters:
predicate- aPredicateto use as the reject criteriatarget- the Collection to append to for all elements in thisRichIterablethat causePredicate#accept(Object)method to evaluate to false- Returns:
target, which contains appended elements as a result of the reject criteria
-
equals
-
intObjectNotEqual
-
hashCode
-
reverseThis
Returns a new interval with the from and to values reversed and the step value negated. -
size
public int size()Returns the size of the interval.- Specified by:
sizein interfaceCollection<Integer>- Specified by:
sizein interfaceList<Integer>- Specified by:
sizein interfaceRichIterable<Integer>- Overrides:
sizein classAbstractLazyIterable<Integer>
-
toArray
Description copied from interface:RichIterableConverts this iterable to an array.- Specified by:
toArrayin interfaceCollection<Integer>- Specified by:
toArrayin interfaceLazyIterable<Integer>- Specified by:
toArrayin interfaceList<Integer>- Specified by:
toArrayin interfaceRichIterable<Integer>- See Also:
-
toArray
public <E> E[] toArray(E[] array) Description copied from interface:RichIterableConverts this iterable to an array using the specified target array, assuming the target array is as long or longer than the iterable.- Specified by:
toArrayin interfaceCollection<Integer>- Specified by:
toArrayin interfaceLazyIterable<Integer>- Specified by:
toArrayin interfaceList<Integer>- Specified by:
toArrayin interfaceRichIterable<Integer>- See Also:
-
toIntArray
public int[] toIntArray()Converts the interval to an Integer array. -
toString
Description copied from class:AbstractRichIterableReturns a string with the elements of the iterable separated by commas with spaces and enclosed in square brackets.Assert.assertEquals("[]", Lists.mutable.empty().toString()); Assert.assertEquals("[1]", Lists.mutable.with(1).toString()); Assert.assertEquals("[1, 2, 3]", Lists.mutable.with(1, 2, 3).toString());- Specified by:
toStringin interfaceRichIterable<Integer>- Overrides:
toStringin classAbstractRichIterable<Integer>- Returns:
- a string representation of this collection.
- See Also:
-
iterator
-
getFirst
Description copied from interface:RichIterableReturns the first element of an iterable. In the case of a List it is the element at the first index. In the case of any other Collection, it is the first element that would be returned during an iteration. If the iterable is empty, null is returned. If null is a valid element of the container, then a developer would need to check to see if the iterable is empty to validate that a null result was not due to the container being empty.The order of Sets are not guaranteed (except for TreeSets and other Ordered Set implementations), so if you use this method, the first element could be any element from the Set.
- Specified by:
getFirstin interfaceLazyIterable<Integer>- Specified by:
getFirstin interfaceList<Integer>- Specified by:
getFirstin interfaceRichIterable<Integer>- Specified by:
getFirstin interfaceSequencedCollection<Integer>- Overrides:
getFirstin classAbstractLazyIterable<Integer>
-
getLast
Description copied from interface:RichIterableReturns the last element of an iterable. In the case of a List it is the element at the last index. In the case of any other Collection, it is the last element that would be returned during an iteration. If the iterable is empty, null is returned. If null is a valid element of the container, then a developer would need to check to see if the iterable is empty to validate that a null result was not due to the container being empty.The order of Sets are not guaranteed (except for TreeSets and other Ordered Set implementations), so if you use this method, the last element could be any element from the Set.
- Specified by:
getLastin interfaceList<Integer>- Specified by:
getLastin interfaceRichIterable<Integer>- Specified by:
getLastin interfaceSequencedCollection<Integer>- Overrides:
getLastin classAbstractLazyIterable<Integer>
-
forEach
-
forEachWithIndex
public void forEachWithIndex(ObjectIntProcedure<? super Integer> objectIntProcedure, int startIndex, int endIndex) -
get
-
checkBounds
-
valueAtIndex
private int valueAtIndex(int index) -
indexOf
-
lastIndexOf
- Specified by:
lastIndexOfin interfaceList<Integer>
-
toList
Description copied from interface:RichIterableConverts the collection to a MutableList implementation.- Specified by:
toListin interfaceRichIterable<Integer>- Overrides:
toListin classAbstractRichIterable<Integer>
-
toSet
Description copied from interface:RichIterableConverts the collection to a MutableSet implementation.- Specified by:
toSetin interfaceRichIterable<Integer>- Overrides:
toSetin classAbstractRichIterable<Integer>
-
toBag
Description copied from interface:RichIterableConverts the collection to the default MutableBag implementation.- Specified by:
toBagin interfaceRichIterable<Integer>- Overrides:
toBagin classAbstractRichIterable<Integer>
-
add
-
remove
-
addAll
-
addAll
-
removeAll
-
retainAll
-
clear
-
set
-
add
-
remove
-
listIterator
- Specified by:
listIteratorin interfaceList<Integer>
-
listIterator
- Specified by:
listIteratorin interfaceList<Integer>
-
subList
-
take
Description copied from interface:LazyIterableCreates a deferred take iterable for the current iterable using the specified count as the limit.- Specified by:
takein interfaceLazyIterable<Integer>- Overrides:
takein classAbstractLazyIterable<Integer>
-
drop
Description copied from interface:LazyIterableCreates a deferred drop iterable for the current iterable using the specified count as the limit.- Specified by:
dropin interfaceLazyIterable<Integer>- Overrides:
dropin classAbstractLazyIterable<Integer>
-
distinct
Description copied from interface:LazyIterableCreates a deferred distinct iterable to get distinct elements from the current iterable.- Specified by:
distinctin interfaceLazyIterable<Integer>- Overrides:
distinctin classAbstractLazyIterable<Integer>
-
readObject
- Throws:
IOExceptionClassNotFoundException
-