Java > Core Java > Control Flow > For Loop
For-Each Loop (Enhanced For Loop)
This snippet demonstrates the for-each
loop, also known as the enhanced for
loop, which is used to iterate over elements in an array or collection without using an index. This is the preferred method when you only need to access the elements themselves, and not their indices.
Code Example
The for-each
loop simplifies iteration over arrays and collections. It automatically handles the loop counter and index, making the code more readable and less prone to errors. In the example above, the first loop iterates over the names
array, and the second loop iterates over the numbers
List.
import java.util.Arrays;
import java.util.List;
public class ForEachLoopExample {
public static void main(String[] args) {
// Example using an array
String[] names = {"Alice", "Bob", "Charlie"};
for (String name : names) {
System.out.println("Name: " + name);
}
// Example using a List
List<Integer> numbers = Arrays.asList(10, 20, 30, 40, 50);
for (int number : numbers) {
System.out.println("Number: " + number);
}
}
}
Concepts Behind the Snippet
The for-each
loop (also known as the enhanced for
loop) is a simplified way to iterate over elements in an array or collection. It hides the underlying index and loop counter, making the code cleaner and easier to read.
Syntax: for (ElementType element : collection) { // Code to execute }
Where:
* ElementType
is the data type of the elements in the array or collection.
* element
is a variable that will hold the current element in each iteration.
* collection
is the array or collection you want to iterate over.
Real-Life Use Case
Consider a scenario where you have a shopping cart represented as a list of items. You can use a for-each
loop to calculate the total price of all items in the cart. Similarly, you can use it to display a list of product names on a website.
Best Practices
for-each
loops whenever you only need to access the elements themselves and don't need the index.for-each
loop, as this can lead to unexpected behavior (e.g., ConcurrentModificationException
). If you need to modify the collection during iteration, use an Iterator
.
Interview Tip
Be prepared to explain the differences between a regular for
loop and a for-each
loop. Understand when it is appropriate to use each type of loop. Also, be aware of the limitations of the for-each
loop, such as not being able to access the index or modify the collection during iteration.
When to Use Them
Use a for-each
loop when you need to iterate over all elements in an array or collection and you don't need to access the index. It's particularly useful when you want to write cleaner and more readable code.
Memory Footprint
The memory footprint of a for-each
loop is similar to that of a regular for
loop. It mainly depends on the size of the element variable and any variables used within the loop body. The underlying iterator might add a small overhead, but it's usually negligible.
Alternatives
for
loop when you need to access the index of each element in the array or collection.Iterator
when you need to remove elements from the collection during iteration.
Pros
for
loop.
Cons
Iterator
.
FAQ
-
Can I use a
for-each
loop with any type of collection?
Yes, you can use afor-each
loop with any class that implements theIterable
interface, such asList
,Set
, andQueue
. -
What happens if I try to modify a collection inside a
for-each
loop?
You may encounter aConcurrentModificationException
. To avoid this, use anIterator
to iterate and modify the collection simultaneously.