If / else Logic gebruiken in Java 8 Streams

1. Overzicht

In deze zelfstudie laten we zien hoe we if / else-logica kunnen implementeren met Java 8 Streams. Als onderdeel van de zelfstudie maken we een eenvoudig algoritme om oneven en even getallen te identificeren.

We kunnen dit artikel bekijken om bij te praten over de Java 8 Stroom basics.

2. Conventioneel als / anders Logica binnen voor elke ()

Laten we eerst een Lijst met gehele getallen en gebruik dan conventionele if / else-logica binnen de Geheel getal stroom voor elke () methode:

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);} anders {Assert.assertTrue (i .intValue ()% 2! = 0);}});

Onze voor elk methode bevat if-else-logica die verifieert of de Geheel getal is een oneven of even getal met behulp van de Java-modulusoperator.

3. als / anders Logica met filter()

Ten tweede, laten we eens kijken naar een meer elegante implementatie met behulp van de Streamfilter () methode:

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

Hierboven hebben we de if / else-logica geïmplementeerd met behulp van de Streamfilter () methode om de Lijst met gehele getallen in twee Strooms, één voor even gehele getallen en een andere voor oneven gehele getallen.

4. Conclusie

In dit korte artikel hebben we onderzocht hoe u een Java 8 kunt maken Stroom en hoe if / else-logica te implementeren met behulp van de voor elke () methode.

Verder hebben we geleerd hoe we de Stream filter methode om een ​​soortgelijk resultaat te bereiken, op een elegantere manier.

Ten slotte is de volledige broncode die in deze tutorial wordt gebruikt, beschikbaar op Github.


$config[zx-auto] not found$config[zx-overlay] not found