With Java 5 and up, one can use for-each loops, also known as enhanced for-loops:
List strings = new ArrayList();
strings.add("This");
strings.add("is");
strings.add("a for-each loop");
for (String string : strings) {
System.out.println(string);
}
For each loops can be used to iterate over Arrays and implementations of the Iterable
interface, the later includes Collections classes, such as List
or Set
.
The loop variable can be of any type that is assignable from the source type.
The loop variable for a enhanced for loop for Iterable<T>
or T[]
can be of type S
, if
T extends S
T
and S
are primitive types and assignable without a castS
is a primitive type and T
can be converted to a type assignable to S
after unboxing conversion.T
is a primitive type and can be converted to S
by autoboxing conversion.Examples:
T elements = ...
for (S s : elements) {
}
T | S | Compiles |
---|---|---|
int[] | long | yes |
long[] | int | no |
Iterable<Byte> | long | yes |
Iterable<String> | CharSequence | yes |
Iterable<CharSequence> | String | no |
int[] | Long | no |
int[] | Integer | yes |