How to traverse a Collection in Java?
Introduction
We can traverse a collection of objects in Java by:
- using Iterators.
- using the for-each construct.
Iterator
public interface Iterator<E>
Iterator is an interface in the Java Collection framework that is used to iterate over a collection. An Iterator object enables us to traverse through a collection. We can get an Iterator for a collection by calling the iterator method.
Code listing
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo {
List<String> list = new ArrayList<String>();
public Demo() {
list.add("One");
list.add("Two");
list.add("Three");
list.add("Four");
list.add("Five");
}
//traverse method using Iterator
public void traverse() {
Iterator<String> itr= list.iterator();
while(itr.hasNext()) {
System.out.println(itr.next());
}
}
public static void main(String[] args) {
Demo d = new Demo();
d.traverse();
}
}

The hasNext() method returns true if the collection has more elements, and the next() method returns the next element in the collection. i.e list in this case.
for-each loop
The for-each loop allows us to traverse a collection using an enhanced for loop. For Example, the following snippet uses the for-each loop to print out each element of a collection.
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo {
List<String> list = new ArrayList<String>();
public Demo() {
list.add("One");
list.add("Two");
list.add("Three");
list.add("Four");
list.add("Five");
}
//traverse method using for each
public void traverse() {
for(String str : list) {
System.out.println(str);
}
}
public static void main(String[] args) {
Demo d = new Demo();
d.traverse();
}
}