Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Java

Mejoras en Java 9 Stream API: takeWhile, dropWhile, iterate y ofNullable

Los Streams se introdujeron en Java para ayudar a los desarrolladores a realizar operaciones agregadas a partir de una secuencia de objetos. Con Java 9, se añaden algunos métodos más para mejorar los streams.

takeWhile(Interfaz Predicate)

Sintaxis

default Stream<T> takeWhile(Predicate<? super T> predicate)

El método takeWhile toma todos los valores hasta que el predicado devuelve false. Devuelve, en caso de stream ordenado, un stream que consiste en el prefijo más largo de elementos tomados de este stream que coinciden con el predicado dado.

Ejemplo

import java.util.stream.Stream;

public class Tester {
    public static void main(String[] args) {
        Stream.of("a","b","c","","e","f").takeWhile(s -> !s.isEmpty())
            .forEach(System.out::print);
    }
}

Salida

El método takeWhile toma todos los valores a, b y c, luego una vez que la cadena está vacía, deja de ejecutarse.

abc

dropWhile(Interfaz Predicate)

Sintaxis

default Stream<T> dropWhile(Predicate<? super T> predicate)

El método dropWhile descarta todos los valores al inicio hasta que el predicado devuelve true. Devuelve, en caso de stream ordenado, un stream que consiste en los elementos restantes de este stream después de descartar el prefijo más largo de elementos que coinciden con el predicado dado.

Ejemplo

import java.util.stream.Stream;

public class Tester {
    public static void main(String[] args) {
        Stream.of("a","b","c","","e","f").dropWhile(s -> !s.isEmpty())
            .forEach(System.out::print);
        System.out.println();
        Stream.of("a","b","c","","e","","f").dropWhile(s -> !s.isEmpty())
            .forEach(System.out::print);
    }
}

Salida

El método dropWhile descarta a, b y c, luego una vez que la cadena está vacía, toma todos los valores.

ef
ef

iterate

Sintaxis

static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)

El método iterate ahora tiene el predicado hasNext como parámetro que detiene el bucle una vez que el predicado hasNext devuelve false.

Ejemplo

import java.util.stream.IntStream;

public class Tester {
    public static void main(String[] args) {
        IntStream.iterate(3, x -> x < 10, x -> x + 3).forEach(System.out::println);
    }
}

Salida

3
6
9

ofNullable

Sintaxis

static <T> Stream<T> ofNullable(T t)

El método ofNullable se introduce para prevenir NullPointerExceptions y evitar comprobaciones nulas para streams. Este método devuelve un Stream secuencial conteniendo un solo elemento si no es nulo, de lo contrario devuelve un Stream vacío.

Ejemplo

import java.util.stream.Stream;

public class Tester {
    public static void main(String[] args) {
        long count = Stream.ofNullable(100).count();
        System.out.println(count);
        count = Stream.ofNullable(null).count();
        System.out.println(count);
    }
}

Salida

1
0

Java

  1. Dominar Operadores en Java: Tipos, Sintaxis y Ejemplos Prácticos
  2. Comentarios en Java: Tipos, Uso y Mejores Prácticas
  3. Dominar el Bucle for Mejorado en Java: Sintaxis, Ejemplos y Mejores Prácticas
  4. Dominar Strings en Java: Creación, Métodos y Mejores Prácticas
  5. Dominando interfaces en Java: Conceptos, implementación y mejores prácticas
  6. Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
  7. Dominando Try‑with‑Resources en Java: Gestión automática de recursos explicada
  8. Anotaciones en Java explicadas: Tipos, ubicación y ejemplos prácticos
  9. Aserciones en Java: Guía práctica para detectar bugs y asegurar fiabilidad del código
  10. Java 9 (JDK 9) – Características y Beneficios Clave
  11. Java 9 API de Procesos: Mejoras Clave y Nuevas Características