In this article, we are going to see how to iterate through a List. In Java, a List is an interface of the Collection framework. List can be of various types such as ArrayList, Stack, LinkedList, and Vector. There are various ways to iterate through a java List but here we will only be discussing our traversal using loops only. So, there were standard three traversals available so do three methods do exists but with the introduction of java 8 and streams other methods do arises out. So, all the four methods are discussed below as follows:
Methods:
- For loop Method
- While Method
- For-each loop Method
- For-each loop of java 8
Implementation:
Method 1: Using a for loop
For Loop is the most common flow control loop. For loop uses a variable to iterate through the list.
Example
Java
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
List<Integer> my_list
= Arrays.asList( 10 , 20 , 30 , 40 , 50 );
System.out.print( "Iterating over ArrayList: " );
for ( int i = 0 ; i < my_list.size(); i++)
System.out.print(my_list.get(i) + " " );
System.out.println();
List<Integer> v = new Vector<Integer>( 5 );
v.add( 10 );
v.add( 20 );
v.add( 30 );
v.add( 40 );
v.add( 50 );
System.out.print( "Iterating over Vector: " );
for ( int i = 0 ; i < v.size(); i++)
System.out.print(v.get(i) + " " );
System.out.println();
List<Integer> s = new Stack<Integer>();
s.add( 10 );
s.add( 20 );
s.add( 30 );
s.add( 40 );
s.add( 50 );
System.out.print( "Iterating over Stack: " );
for ( int i = 0 ; i < v.size(); i++)
System.out.print(s.get(i) + " " );
}
}
|
OutputIterating over ArrayList: 10 20 30 40 50
Iterating over Vector: 10 20 30 40 50
Iterating over Stack: 10 20 30 40 50
Method 2: Using While loop
Java while loop similar to For loop is a control flow statement that allows code to run repeatedly until a desired condition is met.
Example
Java
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
List<Integer> my_list
= Arrays.asList( 10 , 20 , 30 , 40 , 50 );
System.out.print( "Iterating over ArrayList: " );
int i = 0 ;
while (i < my_list.size()) {
System.out.print(my_list.get(i) + " " );
i++;
}
i = 0 ;
System.out.println();
List<Integer> v = new Vector<Integer>( 5 );
v.add( 10 );
v.add( 20 );
v.add( 30 );
v.add( 40 );
v.add( 50 );
System.out.print( "Iterating over Vector: " );
while (i < v.size()) {
System.out.print(v.get(i) + " " );
i++;
}
i = 0 ;
System.out.println();
List<Integer> s = new Stack<Integer>();
s.add( 10 );
s.add( 20 );
s.add( 30 );
s.add( 40 );
s.add( 50 );
System.out.print( "Iterating over Stack: " );
while (i < v.size()) {
System.out.print(s.get(i) + " " );
i++;
}
}
}
|
OutputIterating over ArrayList: 10 20 30 40 50
Iterating over Vector: 10 20 30 40 50
Iterating over Stack: 10 20 30 40 50
Method 3: Using for each loop
Syntax:
for (type temp : list_name)
{
statements using temp;
}
Example
Java
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
List<Integer> my_list
= Arrays.asList( 10 , 20 , 30 , 40 , 50 );
System.out.print( "Iterating over ArrayList: " );
for (Integer i :my_list)
System.out.print(i + " " );
System.out.println();
List<Integer> v = new Vector<Integer>( 5 );
v.add( 10 );
v.add( 20 );
v.add( 30 );
v.add( 40 );
v.add( 50 );
System.out.print( "Iterating over Vector: " );
for (Integer i : v)
System.out.print(i + " " );
System.out.println();
List<Integer> s = new Stack<Integer>();
s.add( 10 );
s.add( 20 );
s.add( 30 );
s.add( 40 );
s.add( 50 );
System.out.print( "Iterating over Stack: " );
for (Integer i : s)
System.out.print(i + " " );
}
}
|
OutputIterating over ArrayList: 10 20 30 40 50
Iterating over Vector: 10 20 30 40 50
Iterating over Stack: 10 20 30 40 50
Method 4: Using for each loop of Java 8
This method takes a functional interface as a parameter therefore lambda expression can be passed as an argument.
Syntax:
void forEach(Consumer<? super T> action)
Example
Java
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
List<Integer> my_list
= Arrays.asList( 10 , 20 , 30 , 40 , 50 );
System.out.print( "Iterating over ArrayList: " );
my_list.forEach(
list -> System.out.print(list + " " ));
System.out.println();
List<Integer> v = new Vector<Integer>( 5 );
v.add( 10 );
v.add( 20 );
v.add( 30 );
v.add( 40 );
v.add( 50 );
System.out.print( "Iterating over Vector: " );
v.forEach(vector -> System.out.print(vector + " " ));
System.out.println();
List<Integer> s = new Stack<Integer>();
s.add( 10 );
s.add( 20 );
s.add( 30 );
s.add( 40 );
s.add( 50 );
System.out.print( "Iterating over Stack: " );
s.forEach(stack -> System.out.print(stack + " " ));
}
}
|
OutputIterating over ArrayList: 10 20 30 40 50
Iterating over Vector: 10 20 30 40 50
Iterating over Stack: 10 20 30 40 50