How to Iterate Over Collections In Java
2 CommentsLast Updated on October 21, 2024 by jt
Iteration is the most common operations done on a collection. For example, you may want to go through all the student grades to find who has the highest test scores.
In Java we have four methods for iterating over a collection, the methods are the for loop, iterator, forEach and lambda expressions.
Setup Collection
Here we create an ArrayList with the names of some employees.
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = new ArrayList<>(); names.add("Harry"); names.add("John"); names.add("Bill"); } }
Iterating With A For Loop
This is the first method that most developers learn when starting to program. This method uses a counter variable named index
and moves from the first item
in collection to the last item
in the collection.
public static void printList(List<String> list) { for (int index = 0; index < list.size(); index++) { // Get String at index; String name = list.get(index); // print name; System.out.println(name); } }
The only downside to using this method is that it cannot be used on collections like Set. This is because Set is not an index base collection.
Output:
Harry John Bill
Iterating With An Iterator
This method loops over the items in the collection and uses the next method to get the item.
public static void printList(List<String> list) { for (int index = 0; index < list.size(); index++) { // Get String at index; String name = list.get(index); // print name; System.out.println(name); } }
Output:
Harry John Bill
Iterating With The Enhanced For Loop
The enhanced for loop is using the iterator method behind the scenes. Using the technique is much easier to read and is used more often.
public static void printList(List<String> list) { for (String name : list) { System.out.println(name); } }
Output:
Harry John Bill
Iterating With The ForEach
With this method, the developer does not have to write code to iterate over the collection because Java does it for us. Instead, we specify what to do in each iteration.
public static void printList(List<String> list) { list.forEach(name -> System.out.println(name)); }
Output:
Harry John Bill
Conclusion
You have seen different ways to iterate over a collection. Nowadays the Enhanced For Loop
and the forEach
methods are the most simple way for iterating over collections in Java.
Originally published at fluentjava.com
Maung Kyaing
Thanks,sir
Ewa Jedrzejowska
Iterator method does not have an iterator 😉