Java 8 Streams - Objekte aus einem Stream filtern mit der filter Methode

In diesem Tutorial beschreibe ich wie man die Filter Methode von Java 8 Streams einsetzt um Objekte aus einem Stream zu filtern.
Java 8

Java 8 Streams – Objekte aus einer Liste filtern

Einleitung

In den beiden vorherigen Java 8 Stream Tutorials haben wir kennen gelernt, wie man aus einer Liste eine Map erstellt und wie man Objekte einer Liste in eine neue Klassen mappt. In diesem Tutorial wird es darum gehen wie man mit der Hilfe der Java 8 Stream filter Methode einzelne Objekte aus einem Stream selektieren kann

Voraussetzung

  • Java Kentnisse

Objekte aus einem Stream filtern mit der filter() Methode

In diversen Projekten habe ich die Erfahrung gemacht, dass es unter Umständen notwendig ist, einzelne Objekte aus einer Liste zu selektieren. Hierfür bietet sich bei Java 8 Streams die filter Methode an. Mit der Filter Methode können Objekte im Stream nach einen oder mehreren  Kriterien geprüft werden. Wenn die Prüfung eine true als Ergebnis liefert, dann bleibt das Objekt in dem Stream. Bei einem false wird es nicht übernommen und steht nicht mehr zur weiteren Verarbeitung zur Verfügung

Im folgenden haben wir eine Klasse Customer.java, von dem wir drei Objekte weiter unten in der ArrayList hinzufügen werden.

Der folgende Codeabschnitt zeigt einen Stream der drei Customer Objekte beinhaltet. In der Filter Methode des Streams sehen wir, dass der searchTerm mit dem firstname der Customer Objekte verglichen wird. Wichtig ist hier zu wissen, dass alle Objekte im Stream hier verglichen werden.

Nach dem Vergleich bleiben die Objekte im Stream, die in der Filter Methode ein true zurück geliefert haben!

In diesem Fall gehen wir davon aus, dass es nur ein Ergebnis gibt und greifen daher mit findFirst() auf das erste gefundene Customer im Stream. Die Methode ifPresent gibt dann den Nachnamen des Customer Objektes, welches gefunden wurde. Wichtig hier ist es, dass ifPresent nur dann ausgeführt wird, wenn es auch ein Ergebnis gibt. Dies bedeutet, dass wenn kein Objekt über findFirst gefunden werden konnte, dass dann ifPresent auch nicht ausgeführt wird.

Die Verkettung der Filter Methode

Die Filter Methode kann man entweder kompliziert aufbauen in dem man in der Methode mittelt UND Verknüpfung weitere Bedingungen implementiert oder man verkettet die Filter Methoden miteinander.

Folgender Codeabschnitt zeigt zwei Filter Methoden. Die erste Filter Methode filtert die Customer Objekte nach dem Vornamen und die Zweite nach dem Nachnamen. In diesem Fall würden nur die Objekte im Stream erhalten bleiben, die beide Filter Bedingungen erfüllen.

Das Ergebnis

Die Filter Methode von Java 8 Streams biete eine elegante und lesbare an Möglichkeiten Objekte aus einem Stream zu filtern. Durch die Verkettung von Filter Methoden ist man als Entwickler in der Lage Code zu schreiben, welches recht einfach zu lesen ist.

Ich hoffe euch hat mein kleines Tutorial gefallen. Solltet ihr Fragen, Kritik oder Anregungen haben, dann würde ich mich freuen, wenn ihr ein Kommentar hinterlassen würdet.

Verwandte Beiträge

Leave a comment

Diese Website verwendet Cookies. Durch die Nutzung unserer Services erklären Sie sich damit einverstanden, dass wir Cookies setzen. weitere Informationen

Diese Website verwendet Cookies. Durch die Nutzung unserer Services erklären Sie sich damit einverstanden, dass wir Cookies setzen.

Schließen