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](<https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html>) 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

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 |