Programa para iterar sobre un flujo con índices en Java 8

Dado un Stream en Java, la tarea es iterarlo con la ayuda de índices.

Ejemplos:

Entrada : Corriente = [G, e, e, k, s]
Salida : [0 -> G, 1 -> e, 2 -> e, 3 -> k, 4 -> s]

Entrada : Corriente = [G, e, e, k, s, F, o, r, G, e, e, k, s]
Salida : [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]

  • Método 1: Usando IntStream.
    1. Obtenga el Stream de la array usando el método range().
    2. Mapee cada elemento de la transmisión con un índice asociado usando el método mapToObj()
    3. Imprimir los elementos con índices

    // 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);
        }
    }
    Producción:

    0 -> G
    1 -> e
    2 -> e
    3 -> k
    4 -> s
    
  • Método 2: Usando AtomicInteger.
    1. Cree un AtomicInteger para index.
    2. Obtenga el Stream de la array usando el método Arrays.stream().
    3. Asigne cada elemento de la secuencia con un índice asociado con él usando el método map() donde el índice se obtiene de AtomicInteger mediante el índice de incremento automático cada vez con la ayuda del método getAndIncrement().
    4. Imprime los elementos con índices.

    // 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);
        }
    }
    Producción:

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

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *