๐ Iterating Over Collections in Java
Once you store data in a collection (like List, Set, etc.), you often need to traverse or loop through the elements to process them. Java provides several ways to iterate over collections.
๐ ๏ธ Common Iteration Techniques:
Technique | Description | Applicable To |
|---|---|---|
| Simple and readable loop | All collections |
| Universal way to iterate with removal option | All collections |
| Bi-directional iteration (only for | Lists only |
| Index-based iteration |
|
| Functional-style iteration | All collections |
โ Enhanced for-each Loop
๐ Syntax:
for (Type element : collection) {
// use element
}โถ๏ธ Example:
import java.util.ArrayList;
public class ForEachExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Mango");
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}Apple
Banana
Mangoโ Iterator
Supports safe removal of elements while iterating.
Works with all types of collections.
โถ๏ธ Example:
import java.util.*;
public class IteratorExample {
public static void main(String[] args) {
Set<String> names = new HashSet<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
Iterator<String> it = names.iterator();
while (it.hasNext()) {
String name = it.next();
System.out.println(name);
}
}
}Alice
Charlie
Bobโ ListIterator (Only for Lists)
Can iterate forward and backward
Can modify elements during iteration
โถ๏ธ Example:
import java.util.*;
public class ListIteratorExample {
public static void main(String[] args) {
List<String> colors = new ArrayList<>(List.of("Red", "Green", "Blue"));
ListIterator<String> it = colors.listIterator();
// Forward
while (it.hasNext()) {
System.out.println("Forward: " + it.next());
}
// Backward
while (it.hasPrevious()) {
System.out.println("Backward: " + it.previous());
}
}
}Forward: Red
Forward: Green
Forward: Blue
Backward: Blue
Backward: Green
Backward: Redโ
for loop with index (for List only)
โถ๏ธ Example:
import java.util.*;
public class IndexLoopExample {
public static void main(String[] args) {
List<String> cities = List.of("Delhi", "Mumbai", "Chennai");
for (int i = 0; i < cities.size(); i++) {
System.out.println("City: " + cities.get(i));
}
}
}City: Delhi
City: Mumbai
City: Chennaiโ Java 8 Streams (Functional Style)
โถ๏ธ Example:
import java.util.*;
public class StreamExample {
public static void main(String[] args) {
List<String> languages = List.of("Java", "Python", "C++");
languages.stream().forEach(lang -> System.out.println("Language: " + lang));
}
}Language: Java
Language: Python
Language: C++๐ง Summary Table
Technique | Best For | Supports Remove? | Order Sensitive? |
|---|---|---|---|
for-each | Simplicity | โ | โ for List |
Iterator | Removing elements | โ | โ for Set |
ListIterator | Forward + Backward (Lists only) | โ | โ |
for with index | Index-based access | โ | โ |
Streams | Functional programming | โ (usually) | โ for List |