Executando verificação de segurança...
Em resposta a Java Streams
2

Muito bom man, parabéns. No começo eu achava streams um verdadeiro bixo de 777 cabeças. Mas conhecendo melhor a API percebi que é a coisa mais simples e mais agradavel de trabalhar que existe kkk.

Deixando minha humilde contribuição, além dos métodos que vc destacou, eu também uso muito no dia a dia como dev os métodos anyMatch, noneMatch e allMatch, eles são bem legais, ajudam a encontrar determinadas ocorrências numa lista de forma bem simples, por exemplo:

1. anyMatch:

  • Retorna verdadeiro se pelo menos um item da lista satisfizer a condição, no caso abaixo, retornará verdadeiro se pelo menos uma das pessoas for maior de idade.
 personList.stream().anyMatch(p -> p.age >= 18);

2. noneMatch:

  • Retorna verdadeiro se ninguém da lista satisfizer a condição, no caso abaixo, retornará verdadeiro se nenhuma das pessoas for maior de idade.
 personList.stream().noneMatch(p -> p.age >= 18);

3. allMatch:

  • Retorna verdadeiro se todos os itens da lista satisfizerem a condição, no caso abaixo, retornará verdadeiro se todas as pessoas forem maiores de idade.
 personList.stream().allMatch(p -> p.age >= 18);

O mais massa é que a JVM já otimiza esses métodos, todos eles param assim que é possível definir o resultado, por exemplo, o método anyMatch para de executar no momento em que ele encontra o primeiro caso que da match (retorna verdadeiro). O método noneMatch para de executar no momento em que ele encontra o primeiro caso que dê match (e retorna falso). E o método allMatch para de executar no momento em que ele encontra o primeiro caso que não dê match (e retorna falso). O código fica mais legível (e por consequência, agradável de ler e entender) do que se isso fosse feito na mão com for e if.

Carregando publicação patrocinada...