Java 8 – Stream API (Teil 2)

Erzeugen von Streams in Java 8

Im vorherigen Beitrag zur Einführung von Streams wurden deren Funktionsweise und einige elementare Funktionen vorgestellt. Das Erzeugen von Streams kann auf viele verschiedene Arten geschehen, teilweise abhängig von den enthaltenen Datentypen.

Wir erinnern uns: Streams speichern die zugrundeliegenden Daten nicht, sondern halten nur Verweise auf die Daten zusammen mit den auszuführenden Operationen.

Streams aus Collections

Für die Erzeugung eines sequentiellen Streams aus Collections oder Arrays gibt es verschiedene Möglichkeiten:

Ein paralleler Stream kann direkt oder nachträglich aus einem sequentiellem Stream erzeugt werden:

Primitive Streams

Streams können nicht nur Referenztypen enthalten, sondern auch primitive Datentypen. Bei den Streams für int, long und double entfällt das Boxing und Unboxing, weswegen sie für die Arbeit mit einfachen Zahlen effizienter sind.

Unendliche Streams

Mit den Methoden generate und iterate kann man infinite Streams erzeugen:

Sonstige Streams

Weitere Grundlagen für Streams können z.B. reguläre Ausdrücke oder Informationen aus dem Dateisystem sein:

Quelle: Java Magazin 8 | 2014

Verfasst von Marion Wilker am 23. Mai 2017