Skip to main content Skip to docs navigation
TechSpiderTutorials

Enhanced for Loop/for-each Loop

Java, a popular and versatile programming language, provides various ways to iterate over arrays and collections. One of the most useful constructs for iteration introduced in Java 5 is the Enhanced for Loop, also known as the For-Each loop. This loop simplifies the process of traversing arrays and collections, improving code readability and reducing the risk of errors.

What is the Enhanced for Loop?

The Enhanced for Loop is designed to iterate over elements in an array or a collection, such as a List, Set, or Map, without needing to use an explicit iterator or manage index variables. This loop reduces boilerplate code and focuses on the elements rather than the indices.

Syntax

The syntax of the Enhanced for Loop is straightforward:

for (type element : collection) {
    // Body of loop
}
  • type: The type of the elements in the collection or array.
  • element: A variable that represents the current element of the collection or array.
  • collection: The array or collection being iterated over.

Advantages of java for-each Loop

  1. Simplicity: Reduces boilerplate code and improves readability.
  2. Safety: Eliminates the risk of IndexOutOfBoundsException and reduces errors related to index manipulation.
  3. Readability: Makes the code cleaner and easier to understand by focusing on the elements rather than indices.

Examples

1: Iterating Over an Array

public class EnhancedForLoopExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};

        // Using Enhanced for Loop
        for (int number : numbers) {
            System.out.println(number);
        }
    }
}

Output:

1
2
3
4
5

2: Iterating Over a List

import java.util.ArrayList;
import java.util.List;

public class EnhancedForLoopListExample {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");

        // Using Enhanced for Loop
        for (String name : names) {
            System.out.println(name);
        }
    }
}

Output:

Alice
Bob
Charlie

3: Iterating Over a Set

import java.util.HashSet;
import java.util.Set;

public class EnhancedForLoopSetExample {
    public static void main(String[] args) {
        Set<Integer> numbersSet = new HashSet<>();
        numbersSet.add(10);
        numbersSet.add(20);
        numbersSet.add(30);

        // Using Enhanced for Loop
        for (int number : numbersSet) {
            System.out.println(number);
        }
    }
}

Output:

20
10
30

Limitations

While the Enhanced for Loop is convenient, it has some limitations:

  1. Read-Only Access: You cannot modify the elements of the array or collection directly inside the loop.
  2. No Index Access: You cannot access the index of the current element, which might be necessary in some situations.