public interface CharIterable
extends java.lang.Iterable<java.lang.Character>
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(CharConsumer 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(java.util.function.Consumer<? super java.lang.Character> action)
Deprecated.
Please use the corresponding type-specific method instead.
|
default void |
forEach(java.util.function.IntConsumer action)
Performs the given action for each element of this type-specific
Iterable ,
performing widening primitive casts, until all elements have been processed or the action
throws an exception. |
default IntIterator |
intIterator()
Returns a widened primitive iterator on the elements of this iterable.
|
default IntSpliterator |
intSpliterator()
Returns widened primitive spliterator on the elements of this iterable.
|
CharIterator |
iterator()
Returns a type-specific iterator.
|
default CharSpliterator |
spliterator()
Returns a type-specific spliterator on the elements of this iterable.
|
CharIterator iterator()
iterator
in interface java.lang.Iterable<java.lang.Character>
Iterable.iterator()
Iterable.iterator()
.default IntIterator intIterator()
This method is provided for the purpose of APIs that expect only the JDK's
primitive iterators, of which there are only int
, long
, and double
.
WARNING: This is not the same as converting the source to a sequence
of code points. This returned instance literally performs (int)(charValue)
casts.
Surrogate pairs will be left as separate elements instead of combined into a single element
with the code point it represents. See Character
for more discussion on code points,
char values, and surrogate pairs.
default CharSpliterator spliterator()
spliterator
in interface java.lang.Iterable<java.lang.Character>
Iterable.spliterator()
.default IntSpliterator intSpliterator()
This method is provided for the purpose of APIs that expect only the JDK's
primitive spliterators, of which there are only int
, long
, and double
.
WARNING: This is not the same as converting the source to a sequence
of code points. This returned instance literally performs (int)(charValue)
casts.
Surrogate pairs will be left as separate elements instead of combined into a single element
with the code point it represents. See Character
for more discussion on code points,
char values, and surrogate pairs.
spliterator()
.default void forEach(CharConsumer 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(java.util.function.IntConsumer action)
Iterable
,
performing widening primitive casts, 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)
@Deprecated default void forEach(java.util.function.Consumer<? super java.lang.Character> action)
forEach
in interface java.lang.Iterable<java.lang.Character>