Package org.eclipse.collections.api
Interface LazyIterable<T>
- All Superinterfaces:
InternalIterable<T>,Iterable<T>,RichIterable<T>
- All Known Implementing Classes:
AbstractLazyIterable,ChunkBooleanIterable,ChunkByteIterable,ChunkCharIterable,ChunkDoubleIterable,ChunkFloatIterable,ChunkIntIterable,ChunkIterable,ChunkLongIterable,ChunkShortIterable,CollectBooleanToObjectIterable,CollectByteToObjectIterable,CollectCharToObjectIterable,CollectDoubleToObjectIterable,CollectFloatToObjectIterable,CollectIntToObjectIterable,CollectIterable,CollectLongToObjectIterable,CollectShortToObjectIterable,CompositeIterable,DistinctIterable,DropIterable,DropWhileIterable,FlatCollectBooleanToObjectIterable,FlatCollectByteToObjectIterable,FlatCollectCharToObjectIterable,FlatCollectDoubleToObjectIterable,FlatCollectFloatToObjectIterable,FlatCollectIntToObjectIterable,FlatCollectIterable,FlatCollectLongToObjectIterable,FlatCollectShortToObjectIterable,Interval,LazyIterableAdapter,RejectIterable,ReverseIterable,SelectInstancesOfIterable,SelectIterable,TakeIterable,TakeWhileIterable,TapIterable,ZipIterable,ZipWithIndexIterable
A LazyIterable is RichIterable which will defer evaluation for certain methods like select, reject, collect, etc.
Any methods that do not return a LazyIterable when called will cause evaluation to be forced.
- Since:
- 1.0
-
Method Summary
Modifier and TypeMethodDescriptionchunk(int size) Creates a deferred chunk iterable.<V> LazyIterable<V>Creates a deferred iterable for collecting elements from the current iterable.collectBoolean(BooleanFunction<? super T> booleanFunction) Returns a lazy BooleanIterable which will transform the underlying iterable data to boolean values based on the booleanFunction.collectByte(ByteFunction<? super T> byteFunction) Returns a lazy ByteIterable which will transform the underlying iterable data to byte values based on the byteFunction.collectChar(CharFunction<? super T> charFunction) Returns a lazy CharIterable which will transform the underlying iterable data to char values based on the charFunction.collectDouble(DoubleFunction<? super T> doubleFunction) Returns a lazy DoubleIterable which will transform the underlying iterable data to double values based on the doubleFunction.collectFloat(FloatFunction<? super T> floatFunction) Returns a lazy FloatIterable which will transform the underlying iterable data to float values based on the floatFunction.<V> LazyIterable<V>Creates a deferred iterable for selecting and collecting elements from the current iterable.collectInt(IntFunction<? super T> intFunction) Returns a lazy IntIterable which will transform the underlying iterable data to int values based on the intFunction.collectLong(LongFunction<? super T> longFunction) Returns a lazy LongIterable which will transform the underlying iterable data to long values based on the longFunction.collectShort(ShortFunction<? super T> shortFunction) Returns a lazy ShortIterable which will transform the underlying iterable data to short values based on the shortFunction.<P,V> LazyIterable<V> collectWith(Function2<? super T, ? super P, ? extends V> function, P parameter) Same asRichIterable.collect(Function)with aFunction2and specified parameter which is passed to the block.concatenate(Iterable<T> iterable) Creates a deferred iterable that will join this iterable with the specified iterable.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.<V> LazyIterable<V>flatCollect(Function<? super T, ? extends Iterable<V>> function) Creates a deferred flattening iterable for the current iterable.default <P,V> LazyIterable<V> flatCollectWith(Function2<? super T, ? super P, ? extends Iterable<V>> function, P parameter) getFirst()Returns the first element of an iterable.<R extends Collection<T>>
Rinto(R target) Iterates over this iterable adding all elements into the target collection.Creates a deferred iterable for rejecting elements from the current iterable.<P> LazyIterable<T>rejectWith(Predicate2<? super T, ? super P> predicate, P parameter) Similar toRichIterable.reject(Predicate), except with an evaluation parameter for the second generic argument inPredicate2.Creates a deferred iterable for selecting elements from the current iterable.<S> LazyIterable<S>selectInstancesOf(Class<S> clazz) Returns all elements of the source collection that are instances of the Classclazz.<P> LazyIterable<T>selectWith(Predicate2<? super T, ? super P> predicate, P parameter) Similar toRichIterable.select(Predicate), except with an evaluation parameter for the second generic argument inPredicate2.take(int count) Creates a deferred take iterable for the current iterable using the specified count as the limit.Creates a deferred tap iterable.<S> LazyIterable<Pair<T,S>> Creates a deferred zip iterable.Creates a deferred zipWithIndex iterable.Methods inherited from interface org.eclipse.collections.api.InternalIterable
forEach, forEachWith, forEachWithIndexMethods inherited from interface java.lang.Iterable
iterator, spliteratorMethods inherited from interface org.eclipse.collections.api.RichIterable
aggregateBy, aggregateBy, aggregateInPlaceBy, allSatisfy, allSatisfyWith, anySatisfy, anySatisfyWith, appendString, appendString, appendString, asLazy, collect, collectBoolean, collectByte, collectChar, collectDouble, collectFloat, collectIf, collectInt, collectLong, collectShort, collectWith, contains, containsAll, containsAllArguments, containsAllIterable, containsAny, containsAnyIterable, containsBy, containsNone, containsNoneIterable, count, countBy, countBy, countByEach, countByEach, countByWith, countByWith, countWith, detect, detectIfNone, detectOptional, detectWith, detectWithIfNone, detectWithOptional, each, flatCollect, flatCollectBoolean, flatCollectByte, flatCollectChar, flatCollectDouble, flatCollectFloat, flatCollectInt, flatCollectLong, flatCollectShort, flatCollectWith, forEach, getAny, getLast, getOnly, groupBy, groupBy, groupByAndCollect, groupByEach, groupByEach, groupByUniqueKey, groupByUniqueKey, injectInto, injectInto, injectInto, injectInto, injectInto, injectIntoDouble, injectIntoFloat, injectIntoInt, injectIntoLong, isEmpty, makeString, makeString, makeString, makeString, max, max, maxBy, maxByOptional, maxOptional, maxOptional, min, min, minBy, minByOptional, minOptional, minOptional, noneSatisfy, noneSatisfyWith, notEmpty, partition, partitionWith, reduce, reduceInPlace, reduceInPlace, reject, rejectWith, select, selectWith, size, sumByDouble, sumByFloat, sumByInt, sumByLong, summarizeDouble, summarizeFloat, summarizeInt, summarizeLong, sumOfDouble, sumOfFloat, sumOfInt, sumOfLong, toArray, toArray, toBag, toBiMap, toImmutableBag, toImmutableBiMap, toImmutableList, toImmutableMap, toImmutableSet, toImmutableSortedBag, toImmutableSortedBag, toImmutableSortedBagBy, toImmutableSortedList, toImmutableSortedList, toImmutableSortedListBy, toImmutableSortedSet, toImmutableSortedSet, toImmutableSortedSetBy, toList, toMap, toMap, toSet, toSortedBag, toSortedBag, toSortedBagBy, toSortedList, toSortedList, toSortedListBy, toSortedMap, toSortedMap, toSortedMapBy, toSortedSet, toSortedSet, toSortedSetBy, toString, zip, zipWithIndex
-
Method Details
-
getFirst
T 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 interfaceRichIterable<T>
-
select
Creates a deferred iterable for selecting elements from the current iterable.- Specified by:
selectin interfaceRichIterable<T>
-
selectWith
Description copied from interface:RichIterableSimilar toRichIterable.select(Predicate), except with an evaluation parameter for the second generic argument inPredicate2.E.g. return a
Collectionof Person elements where the person has an age greater than or equal to 18 yearsExample using a Java 8 lambda expression:
RichIterable<Person> selected = people.selectWith((Person person, Integer age) -> person.getAge()>= age, Integer.valueOf(18));Example using an anonymous inner class:
RichIterable<Person> selected = people.selectWith(new Predicate2<Person, Integer>() { public boolean accept(Person person, Integer age) { return person.getAge()>= age; } }, Integer.valueOf(18));- Specified by:
selectWithin interfaceRichIterable<T>- Parameters:
predicate- aPredicate2to use as the select criteriaparameter- a parameter to pass in for evaluation of the second argumentPinpredicate- See Also:
-
selectInstancesOf
Description copied from interface:RichIterableReturns all elements of the source collection that are instances of the Classclazz.RichIterable<Integer> integers = List.mutable.with(new Integer(0), new Long(0L), new Double(0.0)).selectInstancesOf(Integer.class);- Specified by:
selectInstancesOfin interfaceRichIterable<T>
-
reject
Creates a deferred iterable for rejecting elements from the current iterable.- Specified by:
rejectin interfaceRichIterable<T>- Parameters:
predicate- aPredicateto use as the reject criteria- Returns:
- a RichIterable that contains elements that cause
Predicate.accept(Object)method to evaluate to false
-
rejectWith
Description copied from interface:RichIterableSimilar toRichIterable.reject(Predicate), except with an evaluation parameter for the second generic argument inPredicate2.E.g. return a
Collectionof Person elements where the person has an age greater than or equal to 18 yearsExample using a Java 8 lambda expression:
RichIterable<Person> rejected = people.rejectWith((Person person, Integer age) -> person.getAge() < age, Integer.valueOf(18));Example using an anonymous inner class:
MutableList<Person> rejected = people.rejectWith(new Predicate2<Person, Integer>() { public boolean accept(Person person, Integer age) { return person.getAge() < age; } }, Integer.valueOf(18));- Specified by:
rejectWithin interfaceRichIterable<T>- Parameters:
predicate- aPredicate2to use as the select criteriaparameter- a parameter to pass in for evaluation of the second argumentPinpredicate- See Also:
-
collect
Creates a deferred iterable for collecting elements from the current iterable.- Specified by:
collectin interfaceRichIterable<T>
-
collectWith
<P,V> LazyIterable<V> collectWith(Function2<? super T, ? super P, ? extends V> function, P parameter) Description copied from interface:RichIterableSame asRichIterable.collect(Function)with aFunction2and specified parameter which is passed to the block.Example using a Java 8 lambda expression:
RichIterable<Integer> integers = Lists.mutable.with(1, 2, 3).collectWith((each, parameter) -> each + parameter, Integer.valueOf(1));Example using an anonymous inner class:
Function2<Integer, Integer, Integer> addParameterFunction = new Function2<Integer, Integer, Integer>() { public Integer value(Integer each, Integer parameter) { return each + parameter; } }; RichIterable<Integer> integers = Lists.mutable.with(1, 2, 3).collectWith(addParameterFunction, Integer.valueOf(1));- Specified by:
collectWithin interfaceRichIterable<T>- Parameters:
function- AFunction2to use as the collect transformation functionparameter- A parameter to pass in for evaluation of the second argumentPinfunction- Returns:
- A new
RichIterablethat contains the transformed elements returned byFunction2.value(Object, Object) - See Also:
-
collectIf
<V> LazyIterable<V> collectIf(Predicate<? super T> predicate, Function<? super T, ? extends V> function) Creates a deferred iterable for selecting and collecting elements from the current iterable.- Specified by:
collectIfin interfaceRichIterable<T>
-
take
Creates a deferred take iterable for the current iterable using the specified count as the limit. -
drop
Creates a deferred drop iterable for the current iterable using the specified count as the limit. -
takeWhile
- Since:
- 8.0
- See Also:
-
dropWhile
- Since:
- 8.0
- See Also:
-
distinct
LazyIterable<T> distinct()Creates a deferred distinct iterable to get distinct elements from the current iterable.- Since:
- 5.0
-
flatCollect
Creates a deferred flattening iterable for the current iterable.- Specified by:
flatCollectin interfaceRichIterable<T>- Parameters:
function- TheFunctionto apply- Returns:
- a new flattened collection produced by applying the given
function
-
flatCollectWith
default <P,V> LazyIterable<V> flatCollectWith(Function2<? super T, ? super P, ? extends Iterable<V>> function, P parameter) - Specified by:
flatCollectWithin interfaceRichIterable<T>- Since:
- 9.2
-
concatenate
Creates a deferred iterable that will join this iterable with the specified iterable. -
zip
Creates a deferred zip iterable.- Specified by:
zipin interfaceRichIterable<T>- Type Parameters:
S- the type of the second half of the returned pairs- Parameters:
that- TheRichIterableproviding the second half of each result pair- Returns:
- A new
RichIterablecontaining pairs consisting of corresponding elements of thisRichIterableand that. The length of the returnedRichIterableis the minimum of the lengths of thisRichIterableand that.
-
zipWithIndex
LazyIterable<Pair<T,Integer>> zipWithIndex()Creates a deferred zipWithIndex iterable.- Specified by:
zipWithIndexin interfaceRichIterable<T>- Returns:
- A new
RichIterablecontaining pairs consisting of all elements of thisRichIterablepaired with their index. Indices start at 0. - See Also:
-
chunk
Creates a deferred chunk iterable.- Specified by:
chunkin interfaceRichIterable<T>- Parameters:
size- the number of elements per chunk- Returns:
- A
RichIterablecontainingRichIterables of sizesize, except the last will be truncated if the elements don't divide evenly.
-
tap
Creates a deferred tap iterable.- Specified by:
tapin interfaceRichIterable<T>- See Also:
-
into
Iterates over this iterable adding all elements into the target collection.- Specified by:
intoin interfaceRichIterable<T>
-
collectBoolean
Returns a lazy BooleanIterable which will transform the underlying iterable data to boolean values based on the booleanFunction.- Specified by:
collectBooleanin interfaceRichIterable<T>
-
collectByte
Returns a lazy ByteIterable which will transform the underlying iterable data to byte values based on the byteFunction.- Specified by:
collectBytein interfaceRichIterable<T>
-
collectChar
Returns a lazy CharIterable which will transform the underlying iterable data to char values based on the charFunction.- Specified by:
collectCharin interfaceRichIterable<T>
-
collectDouble
Returns a lazy DoubleIterable which will transform the underlying iterable data to double values based on the doubleFunction.- Specified by:
collectDoublein interfaceRichIterable<T>
-
collectFloat
Returns a lazy FloatIterable which will transform the underlying iterable data to float values based on the floatFunction.- Specified by:
collectFloatin interfaceRichIterable<T>
-
collectInt
Returns a lazy IntIterable which will transform the underlying iterable data to int values based on the intFunction.- Specified by:
collectIntin interfaceRichIterable<T>
-
collectLong
Returns a lazy LongIterable which will transform the underlying iterable data to long values based on the longFunction.- Specified by:
collectLongin interfaceRichIterable<T>
-
collectShort
Returns a lazy ShortIterable which will transform the underlying iterable data to short values based on the shortFunction.- Specified by:
collectShortin interfaceRichIterable<T>
-