Thursday, August 28, 2025
HomeLanguagesJavaProgram to Iterate over a Stream with Indices in Java 8

Program to Iterate over a Stream with Indices in Java 8

Given a Stream in Java, the task is to iterate over it with the help of indices.

Examples:

Input: Stream = [G, e, e, k, s]
Output: [0 -> G, 1 -> e, 2 -> e, 3 -> k, 4 -> s]

Input: Stream = [G, e, e, k, s, F, o, r, G, e, e, k, s]
Output: [0 -> G, 1 -> e, 2 -> e, 3 -> k, 4 -> s, 5 -> F, 6 -> o, 7 -> r, 8 -> G, 9 -> e, 10 -> e, 11 -> k, 12 -> s]

  • Method 1: Using IntStream.
    1. Get the Stream from the array using range() method.
    2. Map each elements of the stream with an index associated with it using mapToObj() method
    3. Print the elements with indices




    // Java program to iterate over Stream with Indices
      
    import java.util.stream.IntStream;
      
    class GFG {
        public static void main(String[] args)
        {
      
            String[] array = { "G", "e", "e", "k", "s" };
      
            // Iterate over the Stream with indices
            IntStream
      
                // Get the Stream from the array
                .range(0, array.length)
      
                // Map each elements of the stream
                // with an index associated with it
                .mapToObj(index -> String.format("%d -> %s"
                                           index, array[index]))
      
                // Print the elements with indices
                .forEach(System.out::println);
        }
    }

    
    
    Output:

    0 -> G
    1 -> e
    2 -> e
    3 -> k
    4 -> s
    
  • Method 2: Using AtomicInteger.
    1. Create an AtomicInteger for index.
    2. Get the Stream from the array using Arrays.stream() method.
    3. Map each elements of the stream with an index associated with it using map() method where the index is fetched from the AtomicInteger by auto-incrementing index everytime with the help of getAndIncrement() method.
    4. Print the elements with indices.




    // Java program to iterate over Stream with Indices
      
    import java.util.stream.IntStream;
    import java.util.*;
    import java.util.concurrent.atomic.AtomicInteger;
      
    class GFG {
        public static void main(String[] args)
        {
      
            String[] array = { "G", "e", "e", "k", "s" };
      
            // Create an AtomicInteger for index
            AtomicInteger index = new AtomicInteger();
      
            // Iterate over the Stream with indices
            Arrays
      
                // Get the Stream from the array
                .stream(array)
      
                // Map each elements of the stream
                // with an index associated with it
                .map(str -> index.getAndIncrement() + " -> " + str)
      
                // Print the elements with indices
                .forEach(System.out::println);
        }
    }

    
    
    Output:

    0 -> G
    1 -> e
    2 -> e
    3 -> k
    4 -> s
    
RELATED ARTICLES

Most Popular

Dominic
32236 POSTS0 COMMENTS
Milvus
80 POSTS0 COMMENTS
Nango Kala
6609 POSTS0 COMMENTS
Nicole Veronica
11779 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11828 POSTS0 COMMENTS
Shaida Kate Naidoo
6719 POSTS0 COMMENTS
Ted Musemwa
7002 POSTS0 COMMENTS
Thapelo Manthata
6678 POSTS0 COMMENTS
Umr Jansen
6690 POSTS0 COMMENTS