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.
Iterable
Modifier and Type | Method and Description |
---|---|
default void |
forEach(java.util.function.Consumer<? super java.lang.Long> action)
Deprecated.
Please use the corresponding type-specific method instead.
|
default void |
forEach(java.util.function.LongConsumer action)
Performs the given action for each element of this type-specific
Iterable
until all elements have been processed or the action throws an
exception. |
default void |
forEach(LongConsumer action)
Performs the given action for each element of this type-specific
Iterable
until all elements have been processed or the action throws an exception. |
LongIterator |
iterator()
Returns a type-specific iterator.
|
default LongIterator |
longIterator()
Returns a primitive iterator on the elements of this iterable.
|
default LongSpliterator |
longSpliterator()
Returns a primitive spliterator on the elements of this iterable.
|
default LongSpliterator |
spliterator()
Returns a type-specific spliterator on the elements of this iterable.
|
LongIterator iterator()
iterator
in interface java.lang.Iterable<java.lang.Long>
Iterable.iterator()
Iterable.iterator()
.default LongIterator longIterator()
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' Iterable
s
that have use for widened iterators.
default LongSpliterator spliterator()
spliterator
in interface java.lang.Iterable<java.lang.Long>
Iterable.spliterator()
.default LongSpliterator longSpliterator()
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' Iterable
s
that have use for widened spliterators.
default void forEach(java.util.function.LongConsumer action)
Iterable
until all elements have been processed or the action throws an
exception.action
- the action to be performed for each element.Iterable.forEach(java.util.function.Consumer)
default void forEach(LongConsumer action)
Iterable
until 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.
action
- the action to be performed for each element.Iterable.forEach(java.util.function.Consumer)
@Deprecated default void forEach(java.util.function.Consumer<? super java.lang.Long> action)
forEach
in interface java.lang.Iterable<java.lang.Long>