Como usar a lógica if / else no Java 8 Streams
1. Visão geral
Neste tutorial, vamos demonstrar como implementar a lógica if / else com Java 8Streams. Como parte do tutorial, criaremos um algoritmo simples para identificar números ímpares e pares.
Podemos dar uma olhada emthis article para nos atualizar sobre os fundamentos do Java 8Stream.
2. Lógica convencionalif/else dentro deforEach()
Em primeiro lugar, vamos criar umInteger Liste usar a lógica if / else convencional dentro do métodoforEach() do streamInteger:
List ints = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
ints.stream()
.forEach(i -> {
if (i.intValue() % 2 == 0) {
Assert.assertTrue(i.intValue() % 2 == 0);
} else {
Assert.assertTrue(i.intValue() % 2 != 0);
}
});
Our forEach method contains if-else logic which verifies whether the Integer is an odd or even number usando o operador de módulo Java.
3. Lógica deif/else comfilter()
Em segundo lugar, vamos ver uma implementação mais elegante usando o métodoStream filter():
Stream evenIntegers = ints.stream()
.filter(i -> i.intValue() % 2 == 0);
Stream oddIntegers = ints.stream()
.filter(i -> i.intValue() % 2 != 0);
evenIntegers.forEach(i -> Assert.assertTrue(i.intValue() % 2 == 0));
oddIntegers.forEach(i -> Assert.assertTrue(i.intValue() % 2 != 0));
Acima, implementamos a lógica if / else usando o métodoStream filter()to separate the Integer List into two Streams, one for even integers and another for odd integers.
4. Conclusão
Neste artigo rápido, exploramos como criar um Java 8Stream e como implementar a lógica if / else usando o métodoforEach().
Além disso, aprendemos a usar o métodoStream filter para obter um resultado semelhante, de forma mais elegante.
Finalmente, o código-fonte completo usado neste tutorial está disponívelover on Github.