Java Language For Each


Example

Java SE 5

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
  • both T and S are primitive types and assignable without a cast
  • S 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) {
}
TSCompiles
int[]longyes
long[]intno
Iterable<Byte>longyes
Iterable<String>CharSequenceyes
Iterable<CharSequence>Stringno
int[]Longno
int[]Integeryes