Stream-Erzeugung und Stream-Operationen

I have a Stream…

Angelika Langer, Klaus Kreft
© iStockphoto.com/Viorika

Im vorangegangenen Beitrag im Java Magazin 6.2014 haben wir erläutert, was Streams in Java 8 prinzipiell sind. Es geht dabei um neue Schnittstellen im Package java.util, mit denen sequenzielle und parallele Operationen auf allen Elementen einer Sequenz (z. B. Liste, Set, Array) unterstützt werden. Nach der Einführung im letzten Beitrag wollen wir nun dieses Mal einen Überblick über das Stream API geben. Woher bekommt man einen Stream? Welche Operationen unterstützt er? Worauf muss ich achten, wenn ich die Operationen verwenden will? Wie orientiere ich mich in der Javadoc des Stream APIs?

Kurze Wiederholung: Streams sind Abstraktionen, die die sequenzielle oder parallele Ausführung von Operationen auf Elementen einer Sequenz unterstützen. Dabei geht es um so genannte Bulk Operations, also Massenoperationen, die auf alle (oder zumindest viele) Elemente der Sequenz angewandt werden sollen. Die Sequenz, um deren Elemente es geht, kann eine Collection (z. B. Liste oder Set), ein Array oder eine andere Art von Sequenz sein. Wir werden nachfolgend noch eine Reihe von Beispielen für solche Sequenzen sehen.
Anders als Collections oder Arrays sind Streams keine Datenspeicher, die die Elemente der Sequenz in ihren internen Datenstrukturen ablegen. Ein Stream hält lediglich einen Verweis auf einen Datenspeicher (die so genannte underlying stream source) zusammen mit einer Liste von Operationen, die auf die Sequenzelemente anzuwenden sind. Streams können auch so aussehen, dass sie anstelle eines Datenspeichers einen Generator benutzen, der die Sequenzelemente generiert. In diesem Fall können die Streams sogar von unbeschränkter Länge sein (so genannte infinite streams). Ehe wir uns das Stream API mit seinen zahlreichen Methoden näher ansehen, wollen wir zeigen, wie man Streams erzeugen kann.

(Den vollständigen Artikel finden sie in der Java Magazin Ausgabe 8.14)

Geschrieben von
Angelika Langer
Angelika Langer
  Angelika Langer arbeitet selbstständig als Trainer mit einem eigenen Curriculum von Java- und C++-Kursen. Kontakt: http://www.AngelikaLanger.com.
Klaus Kreft
Klaus Kreft
  Klaus Kreft arbeitet selbstständig als Consultant und Trainer. Kontakt: http://www.AngelikaLanger.com.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: