Interface LongIterable
- All Superinterfaces:
java.lang.Iterable<java.lang.Long>
- All Known Subinterfaces:
LongBidirectionalIterable,LongBigList,LongCollection,LongList,LongSet,LongSortedSet
- All Known Implementing Classes:
AbstractLongBigList,AbstractLongBigList.LongRandomAccessSubList,AbstractLongBigList.LongSubList,AbstractLongCollection,AbstractLongList,AbstractLongList.LongRandomAccessSubList,AbstractLongList.LongSubList,AbstractLongSet,AbstractLongSortedSet,LongArrayList,LongArraySet,LongAVLTreeSet,LongBigArrayBigList,LongBigLists.EmptyBigList,LongBigLists.ListBigList,LongBigLists.Singleton,LongBigLists.SynchronizedBigList,LongBigLists.UnmodifiableBigList,LongCollections.EmptyCollection,LongCollections.IterableCollection,LongImmutableList,LongLinkedOpenCustomHashSet,LongLinkedOpenHashSet,LongLists.EmptyList,LongLists.Singleton,LongLists.SynchronizedList,LongLists.SynchronizedRandomAccessList,LongLists.UnmodifiableList,LongLists.UnmodifiableRandomAccessList,LongOpenCustomHashSet,LongOpenHashBigSet,LongOpenHashSet,LongRBTreeSet,LongSets.EmptySet,LongSets.Singleton,LongSets.SynchronizedSet,LongSets.UnmodifiableSet,LongSortedSets.EmptySet,LongSortedSets.Singleton,LongSortedSets.SynchronizedSortedSet,LongSortedSets.UnmodifiableSortedSet
public interface LongIterable
extends java.lang.Iterable<java.lang.Long>
Iterable that strengthens that specification of iterator() and forEach(Consumer).
Note that whenever there exist a primitive consumer in java.util.function (e.g., IntConsumer),
trying to access any version of forEach(Consumer) using a lambda expression with untyped arguments
will generate an ambiguous method error. This can be easily solved by specifying the type of the argument, as in
intIterable.forEach((int x) -> { // Do something with x });
The same problem plagues, for example, PrimitiveIterator.OfInt.forEachRemaining(java.util.function.IntConsumer).
Warning: Java will let you write “colon” for statements with primitive-type
loop variables; however, what is (unfortunately) really happening is that at each iteration an
unboxing (and, in the case of fastutil type-specific data structures, a boxing) will be performed. Watch out.
- See Also:
Iterable
-
Method Summary
Modifier and Type Method Description default voidforEach(LongConsumer action)Performs the given action for each element of this type-specificIterableuntil all elements have been processed or the action throws an exception.default voidforEach(java.util.function.Consumer<? super java.lang.Long> action)Deprecated.Please use the corresponding type-specific method instead.default voidforEach(java.util.function.LongConsumer action)Performs the given action for each element of this type-specificIterableuntil all elements have been processed or the action throws an exception.LongIteratoriterator()Returns a type-specific iterator.default LongIteratorlongIterator()Returns a primitive iterator on the elements of this iterable.default LongSpliteratorlongSpliterator()Returns a primitive spliterator on the elements of this iterable.default LongSpliteratorspliterator()Returns a type-specific spliterator on the elements of this iterable.
-
Method Details
-
iterator
LongIterator iterator()Returns a type-specific iterator.- Specified by:
iteratorin interfacejava.lang.Iterable<java.lang.Long>- Returns:
- a type-specific iterator.
- See Also:
Iterable.iterator()- API Notes:
- Note that this specification strengthens the one given in
Iterable.iterator().
-
longIterator
Returns a primitive iterator on the elements of this iterable.This method is identical to
iterator(), as the type-specific iterator is already compatible with the JDK's primitive iterators. It only exists for compatibility with the other primitive types'Iterables that have use for widened iterators.- Returns:
- a primitive iterator on the elements of this iterable.
- Since:
- 8.5.0
-
spliterator
Returns a type-specific spliterator on the elements of this iterable.- Specified by:
spliteratorin interfacejava.lang.Iterable<java.lang.Long>- Returns:
- a type-specific spliterator on the elements of this iterable.
- Since:
- 8.5.0
- API Notes:
- Note that this specification strengthens the one given in
Iterable.spliterator().
-
longSpliterator
Returns a primitive spliterator on the elements of this iterable.This method is identical to
spliterator(), as the type-specific spliterator is already compatible with the JDK's primitive spliterators. It only exists for compatibility with the other primitive types'Iterables that have use for widened spliterators.- Returns:
- a primitive spliterator on the elements of this collection.
- Since:
- 8.5.0
-
forEach
default void forEach(java.util.function.LongConsumer action)Performs the given action for each element of this type-specificIterableuntil all elements have been processed or the action throws an exception.- Parameters:
action- the action to be performed for each element.- Since:
- 8.0.0
- See Also:
Iterable.forEach(java.util.function.Consumer)- API Notes:
- Implementing classes should generally override this method, and take the default implementation of the other overloads which will delegate to this method (after proper conversions).
-
forEach
Performs the given action for each element of this type-specificIterableuntil all elements have been processed or the action throws an exception.WARNING: Overriding this method is almost always a mistake, as this overload only exists to disambiguate. Instead, override the
forEach()overload that uses the JDK's primitive consumer type (e.g.IntConsumer).If Java supported final default methods, this would be one, but sadly it does not.
If you checked and are overriding the version with
java.util.function.XConsumer, and still see this warning, then your IDE is incorrectly conflating this method with the proper method to override, and you can safely ignore this message.- Parameters:
action- the action to be performed for each element.- Since:
- 8.5.0
- See Also:
Iterable.forEach(java.util.function.Consumer)
-
forEach
@Deprecated default void forEach(java.util.function.Consumer<? super java.lang.Long> action)Deprecated.Please use the corresponding type-specific method instead.- Specified by:
forEachin interfacejava.lang.Iterable<java.lang.Long>
-