Different ways of iterating an ArrayList in Java
When working with ArrayList in Java, most of the time we encounter a situation where we need to iterate through an each element. In this article I'm going to demonstrate the different ways in which we can iterate through an ArrayList elements.
//Defining an ArrayList
ArrayList<Integer> arr = new ArrayList<Integer>();
arr.add(10);
arr.add(20);
arr.add(30);
arr.add(40);
arr.add(50);
Using normal for loop
This method is useful when you also need index of the elements along with the elements itself. Using this method, you can also iterate a part of an ArrayList.
for(int i=0;i<arr.size();i++)
{
System.out.print(arr.get(i)+" ");
}
Output: 10 20 30 40 50
Using enhanced for loop
This method is useful when you don’t need indexes of elements and you just want to access the elements without removing them or modifying them.
for(int i : arr)
{
System.out.print(i+" ");
}
Output: 10 20 30 40 50
Using Iterator
This method is useful when you want to remove the elements as you iterate through an ArrayList. You can use : it.remove();
Iterator<Integer> it = arr.iterator();
while(it.hasNext())
{
System.out.print(it.next()+" ");
}
Output: 10 20 30 40 50
Using Lambda
This method is a syntactic sugar which reduces the lines of code. Lambda introduced in Java 8.
arr.forEach(elem -> System.out.print(elem+" "));
Output: 10 20 30 40 50
Using Streams with Lambda
Streams also introduced in Java 8.
arr.stream().forEach((element) -> System.out.print(element+" "));
Output: 10 20 30 40 50
Using ListIterator
This method is useful when you want to iterate in both directions forward and backward. You can use hasPrevious() and previous() also.
ListIterator<Integer> li= arr.listIterator();
while(li.hasNext())
{
System.out.print(li.next()+" ");
}
For more stuff like this follow me at https://www.linkedin.com/in/shivaprasadgurram/