Interface ShortIterable
- All Known Subinterfaces:
ShortBidirectionalIterable
,ShortBigList
,ShortCollection
,ShortList
,ShortSet
,ShortSortedSet
- All Known Implementing Classes:
AbstractShortBigList
,AbstractShortBigList.ShortRandomAccessSubList
,AbstractShortBigList.ShortSubList
,AbstractShortCollection
,AbstractShortList
,AbstractShortList.ShortRandomAccessSubList
,AbstractShortList.ShortSubList
,AbstractShortSet
,AbstractShortSortedSet
,ShortArrayList
,ShortArraySet
,ShortAVLTreeSet
,ShortBigArrayBigList
,ShortBigLists.EmptyBigList
,ShortBigLists.ListBigList
,ShortBigLists.Singleton
,ShortBigLists.SynchronizedBigList
,ShortBigLists.UnmodifiableBigList
,ShortCollections.EmptyCollection
,ShortCollections.IterableCollection
,ShortImmutableList
,ShortLinkedOpenCustomHashSet
,ShortLinkedOpenHashSet
,ShortLists.EmptyList
,ShortLists.Singleton
,ShortLists.SynchronizedList
,ShortLists.SynchronizedRandomAccessList
,ShortLists.UnmodifiableList
,ShortLists.UnmodifiableRandomAccessList
,ShortOpenCustomHashSet
,ShortOpenHashSet
,ShortRBTreeSet
,ShortSets.EmptySet
,ShortSets.Singleton
,ShortSets.SynchronizedSet
,ShortSets.UnmodifiableSet
,ShortSortedSets.EmptySet
,ShortSortedSets.Singleton
,ShortSortedSets.SynchronizedSortedSet
,ShortSortedSets.UnmodifiableSortedSet
public interface ShortIterable extends Iterable<Short>
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 void
forEach(ShortConsumer action)
Performs the given action for each element of this type-specificIterable
until all elements have been processed or the action throws an exception.default void
forEach(Consumer<? super Short> action)
Deprecated.Please use the corresponding type-specific method instead.default void
forEach(IntConsumer action)
Performs the given action for each element of this type-specificIterable
, 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.ShortIterator
iterator()
Returns a type-specific iterator.default ShortSpliterator
spliterator()
Returns a type-specific spliterator on the elements of this iterable.
-
Method Details
-
iterator
ShortIterator iterator()Returns a type-specific iterator.- Specified by:
iterator
in interfaceIterable<Short>
- Returns:
- a type-specific iterator.
- See Also:
Iterable.iterator()
- API Notes:
- Note that this specification strengthens the one given in
Iterable.iterator()
.
-
intIterator
Returns a widened primitive iterator on the elements of this iterable.This method is provided for the purpose of APIs that expect only the JDK's primitive iterators, of which there are only
int
,long
, anddouble
.- Returns:
- a widened 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:
spliterator
in interfaceIterable<Short>
- 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()
.
-
intSpliterator
Returns widened primitive spliterator on the elements of this iterable.This method is provided for the purpose of APIs that expect only the JDK's primitive spliterators, of which there are only
int
,long
, anddouble
.- Returns:
- a widened primitive spliterator on the elements of this iterable.
- Since:
- 8.5.0
- Implementation Specification:
- The default implementation widens the spliterator from
spliterator()
.
-
forEach
Performs the given action for each element of this type-specificIterable
until 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-specificIterable
, performing widening primitive casts, until 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)
- Implementation Notes:
- Unless the argument is type-specific, this method will introduce an intermediary lambda to perform widening casts. Please use the type-specific overload to avoid this overhead.
-
forEach
Deprecated.Please use the corresponding type-specific method instead.
-