parallel 2015 » Agenda »
// Java: Parallele Verarbeitung mit Streams
Zur Filterung von Daten einer Liste kommt klassischerweise eine Schleife zum Einsatz, in deren Rumpf die entsprechende Bedingung programmiert wird. Soll die Filterung verändert werden, lässt sich entweder die Bedingung anpassen oder besser parametrisieren. Besser wäre jedoch, eine flexibel gestaltete Bedingung von außen einzureichen. Dazu kann sie in unterschiedliche Klassen ausgelagert werden.
Der Vortrag zeigt diese Möglichkeiten auf, um über anonyme Klassen zur Parametrisierung mit Lambda-Ausdrücken unter Nutzung funktionaler Interfaces zu kommen. Es wird das neue Streams-Konzept von Java 8 erläutert. Die Einführung einer Default-Methode in Interfaces, erlaubt es, bestehende Interfaces binär- und source-kompatibel zu erweitern. Somit lassen sich auch Collections um Stream erweitern. In Kombination von Streams und Lambdas können Entwickler bei Programmierung der o.a. Aufgabe schließlich auf die Schleife verzichten sowie Filter und Endoperationen, z.B. die Bildung einer Summe, erstellden. Map- und Reduce-Funktionalität lässt sich so recht einfach erstellen. Dieses Konzept kann dann sehr einfach auf die Nutzung paralleler Stream überführt werden. Somit erhält der Anwender ohne Aufwand eine Parallelverarbeitung.
Skills
Der Vortrag richtet sich an Java-Entwickler. Voraussetzung sind Kenntnisse der Sprache bis Version 7 sowie objektorientierter Konzepte. Kenntnisse der Java-8-Erweiterungen sind nicht erforderlich.
Lernziele
Funktionaler Programmierstil. Parallele Verarbeitung ohne aufwendige Tread-Verwaltung.
// Referent
// Michael Müller
ist Bereichsleiter Softwareentwicklung im Institut für das Entgeltsystem im Krankenhaus (InEK GmbH). Daneben verfasst er Buchrezensionen sowie Fachartikel, vorwiegend zum Java-Ökosystem. Er ist Autor des Buchs "Web Development with Java and JSF".