Java: for each loop
The following code iterates over the elements in iterable
:
for (Type elem : iterable) {
// process elem
}
Where iterable
can be
- An array, such as a
String[]
, or - An implementation of
Iterable
such as anArrayList
or aHashSet
.
Behind the scenes
In case iterable
is an array, the above snippet is equivalent to
for (int i = 0; i < iterable.length; i++) {
Type elem = iterable[i];
// process elem
}
In case iterable
is an Iterable
, it's equivalent to
Iterator<Type> iter = iterable.iterator();
while (iter.hasNext()) {
Type elem = iter.next();
// process elem
}
Auto boxing
Thanks to auto (un)boxing, you can for instance use an int
to iterate over a list of Integer
:
Example:
List<Integer> ints = new ArrayList<>();
// ...
for (int i : ints) {
// ...
}
Optional Braces
For single statement bodies, the braces are optional, just as with if
and while
statements.
These two snippets are equivalent:
The official style guide does however madate the use of braces for safety.
Accidental semicolon
There should not be a semicolon after the loop declaration:
for (…); { … }
See Beware of accidental semicolons in while and for loops!
Comments
Be the first to comment!