Thursday, October 2, 2025
HomeLanguagesJavaGeneric For Loop in Java

Generic For Loop in Java

When we know that we have to iterate over a whole set or list, then we can use Generic For Loop. Java’s Generic has a new loop called for-each loop. It is also called enhanced for loop. This for-each loop makes it easier to iterate over array or generic Collection classes.

In normal for loop, we write three statements :

for( statement1; statement 2; statement3 )
{
     //code to be executed 
}

Statement 1 is executed before the execution of code, Statement 2 states the condition to be satisfied to execute the code and Statement 3 gets executed after the execution of the code block.

But if we look into the Generic For loop or for-each loop,

The generic for loop consists of three parameters :

  • Iterator function: It gets called when the next value is needed. It receives both the invariant state and control variable as parameters. Returns nil signals for termination.
  • Invariant state: This doesn’t change during the iteration. It is basically the subject of the iteration such as String, table or user data.
  • Control variable: It represents the initial value of the iteration.

Syntax 

for( ObjectType variable : iterable/array/collections ){

     // code using name variable
}

Equivalent to 

for( int i=0 ; i< list.size() ; i++) {

   ObjectType variable = list.get(i);

   // statements using variable
}

Example: 

Java




// Java program to illustrate Generic for loop
  
import java.io.*;
  
class GenericsForLoopExample {
    
    public static void main(String[] args)
    {
        // create an array
        int arr[] = { 120, 100, 34, 50, 75 };
  
        // get the sum of array elements
        int s = sum(arr);
  
        // print the sum
        System.out.println(s);
    }
  
    // returns the sum of array elements
    public static int sum(int arr[])
    {
  
        // initialize the sum variable
        int sum = 0;
  
        // generic for loop where var stores the integer
        // value stored at every index of array
        for (int var : arr) {
            sum += var;
        }
  
        return sum;
    }
}


Output

379

Example: Showing that 

Java




// Java program to demonstrate that Generic
// for loop can be used in iterating 
// Collections like HashMap
  
import java.io.*;
import java.util.*;
  
class EnhancedForLoopExample {
    
    public static void main(String[] args)
    {
        // create a empty hashmap
        HashMap<String, String> map = new HashMap<>();
  
        // enter name/url pair
        map.put("GFG", "geeksforgeeks.org");
        map.put("Github", "www.github.com");
        map.put("Practice", "practice.geeksforgeeks.org");
        map.put("Quiz", "www.geeksforgeeks.org");
  
        // using keySet() for storing 
         // all the keys in a Set
        Set<String> key = map.keySet();
  
        // Generic for loop for iterating all over the
        // keySet
        for (String k : key) {
            System.out.println("key :" + k);
        }
  
        // Generic for loop for iterating all over the
        // values
        for (String url : map.values()) {
            System.out.println("value :" + url);
        }
    }
}


Output

key :Quiz
key :Github
key :Practice
key :GFG
value :www.geeksforgeeks.org
value :www.github.com
value :practice.geeksforgeeks.org
value :geeksforgeeks.org

Limitations of Generic For loop or for-each loop:

1. Not appropriate when we want to modify the list.

for( Integer var : arr)
{
     // only changes the var value and not the value of the data stored inside the arr
     var = var + 100; 
} 

 2. We cannot keep track of the index.

for( Integer var : arr){
     
     if(var == target)
     {   
         // don't know the index of var to be compared with variable target         
         return **; 
     }           
} 

4. Iterates a single step in forward direction only.

// This cannot be converted to Generic for loop
for( int i = n-1 ; i >= 0 ; i-- ) {

     // code
                            
}                  

4. Cannot process two decision-making statements at once.

// This loop cannot be converted to Generic for loop
for( int i = 0; i < arr.length; i++ ) {

     if( arr[i]==num )
         return **;
}                            
RELATED ARTICLES

Most Popular

Dominic
32331 POSTS0 COMMENTS
Milvus
85 POSTS0 COMMENTS
Nango Kala
6703 POSTS0 COMMENTS
Nicole Veronica
11867 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11926 POSTS0 COMMENTS
Shaida Kate Naidoo
6818 POSTS0 COMMENTS
Ted Musemwa
7079 POSTS0 COMMENTS
Thapelo Manthata
6775 POSTS0 COMMENTS
Umr Jansen
6776 POSTS0 COMMENTS