LongStream findAny() con ejemplos

LongStream findAny() devuelve un OptionalLong (un objeto contenedor que puede o no contener un valor no nulo) que describe algún elemento de la secuencia, o un OptionalLong vacío si la secuencia está vacía.

Sintaxis:

OptionalLong findAny() 

Parámetros:

  1. OptionalLong : un objeto contenedor que puede o no contener un valor no nulo.

Valor de retorno: la función devuelve un OptionalLong que describe algún elemento de esta secuencia, o un OptionalLong vacío si la secuencia está vacía.

Nota: findAny() es una operación de cortocircuito de terminal de la interfaz Stream. Este método devuelve cualquier primer elemento que satisfaga las operaciones intermedias. Esta es una operación de cortocircuito porque solo necesita que se devuelva ‘cualquier’ primer elemento y termine el resto de la iteración.

Ejemplo 1: método findAny() en Long Stream.

// Java code for LongStream findAny()
// which returns an OptionalLong describing
// some element of the stream, or an
// empty OptionalLong if the stream is empty.
import java.util.*;
import java.util.stream.LongStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating an LongStream
        LongStream stream = LongStream.of(6L, 7L, 8L, 9L);
  
        // Using LongStream findAny() to return
        // an OptionalLong describing some element
        // of the stream
        OptionalLong answer = stream.findAny();
  
        // if the stream is empty, an empty
        // OptionalLong is returned.
        if (answer.isPresent()) {
            System.out.println(answer.getAsLong());
        }
        else {
            System.out.println("no value");
        }
    }
}

Producción :

6

Nota: El comportamiento de la operación LongStream findAny() es explícitamente no determinista , es decir, es libre de seleccionar cualquier elemento en la secuencia. Varias invocaciones en la misma fuente pueden no devolver el mismo resultado.

Ejemplo 2: método findAny() para devolver los elementos divisibles por 4, de forma no determinista.

// Java code for LongStream findAny()
// which returns an OptionalLong describing
// some element of the stream, or an
// empty OptionalLong if the stream is empty.
import java.util.OptionalLong;
import java.util.stream.LongStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating an LongStream
        LongStream stream = LongStream.of(4L, 5L, 8L, 10L, 12L, 16L)
                                .parallel();
  
        // Using LongStream findAny().
        // Executing the source code multiple times
        // may not return the same result.
        // Every time you may get a different
        // value which is divisible by 4.
        stream = stream.filter(num -> num % 4 == 0);
  
        OptionalLong answer = stream.findAny();
        if (answer.isPresent()) {
            System.out.println(answer.getAsLong());
        }
    }
}

Producción :

16

Publicación traducida automáticamente

Artículo escrito por Sahil_Bansall 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 *