Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Java 9 - Melhorias na API de fluxo


Os fluxos foram introduzidos em Java para ajudar os desenvolvedores a realizar operações agregadas a partir de uma sequência de objetos. Com o Java 9, mais alguns métodos são adicionados para melhorar os fluxos.

takeWhile(Interface de predicado)

Sintaxe

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

O método takeWhile recebe todos os valores até que o predicado retorne false. Ele retorna, no caso de fluxo ordenado, um fluxo que consiste no prefixo mais longo de elementos retirados desse fluxo que correspondem ao predicado fornecido.

Exemplo

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);		 
   } 
}

Saída


takeWhile pega todos os valores a, b e c, então, uma vez que a string esteja vazia, ele parou de ser executado.
abc

dropWhile(Interface de Predicado)

Sintaxe

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

O método dropWhile descarta todos os valores no início até que o predicado retorne true. Ele retorna, no caso de fluxo ordenado, um fluxo que consiste nos elementos restantes desse fluxo após eliminar o prefixo mais longo dos elementos correspondentes ao predicado fornecido.

Exemplo

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);
   } 
}

Saída


O método dropWhile descarta os valores a, b e c, então, uma vez que a string esteja vazia, ele recebe todos os valores.
ef
ef

iterar

Sintaxe

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

iterate agora tem o predicado hasNext como parâmetro que interrompe o loop quando o predicado hasNext retorna falso.

Exemplo

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);
   } 
}

Saída

3
6
9

de Nullable

Sintaxe

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

O método ofNullable é introduzido para evitar NullPointerExceptions e para evitar verificações nulas para fluxos. Esse método retorna um Stream sequencial contendo um único elemento, se não for nulo, caso contrário, retorna um Stream vazio.

Exemplo

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);
   } 
}

Saída

1
0

Java

  1. Operadores Java
  2. Comentários Java
  3. Java para cada loop
  4. Strings Java
  5. Interface Java
  6. Classe anônima Java
  7. Java try-with-resources
  8. Anotações Java
  9. Asserções Java
  10. Java 9 - Visão geral