FunktionalePro II Flashcards
Was ist der unterscheid zwischen java.util und java.io
- Die Klassen aus java.io verarbeiten elementare Typen
- Die Klassen aus java.util verarbeiten Objekte
Was sind Interfaces mit Default-Methoden
Schnittstelle (kann auch Funktionale Schnittstelle sein solange nur eine abstrakte Methode vorhanden)
Was ist der Keren der Funktionalen Programmierung
Lambda-Ausdrücke erlauben, Methoden wie Objekte zu behandeln
Was macht Lambda mit Methoden
Lassen sich einfache Methoden in knapper funktionaler Schreibweise zu komplexen Methoden kombinieren
Was sind Streams
Eine Operationsfolge auf Daten
Wie kann man Streams bezeichnen
Datenverarbeitung am Fließband
Meist gilt im Sinne der funktionalen Programmierung:
Die Quelldaten des Streams bleiben unverändert, ein Verarbeitungsschritt erstellt jeweils einen neuen Stream mit den Ergebnissen-> Verarbeitungsmethoden ohne internen Zustand
Was nutzt man oft als Parameter bei Streams?
Oft Lambda-Ausdrücke als Parameter: Wie soll sortiert werden, welches Filterkriterium angewandt? -> Basiert auf funktionaler Schnittstelle
Stream Pipelines Aufbau
Am Anfang steht immer eine Datenquelle
In der Mitter steht die Verarbeitung (intermediäre Operation)
Am Ende steht eine Datensenke(terminale Operation)
Wie lassen sich zwei Stream verketten
Durch eine statische Methode
Welchen Performance Vorteil bieten primitive Typen bei Streams gegenüber Wrapper Streams
Der Performance-Vorteil von primitiven Typen gegenüber von Wrapper-Typen in Streams liegt darin, dass primitiven Typen weniger Speicherplatz benötigen und schneller verarbeitet werden können.
Darüber hinaus können primitiven Typen in Streams direkt verwendet werden, ohne dass sie in Wrapper-Typen umgewandelt werden müssen.
Wo wird die Intermediäre Operation durchgeführt
in der Mitte der Pipeline
Wieso ist die Intermediäre Operation “faul”
wir erst bei bedarf durchgeführt wenn die terminale operation es verlangt
Was sind Intermediäre Operationen
Intermediäre Operationen bei Streams sind Operationen, die auf einem Stream angewendet werden, um die Elemente des Streams zu transformieren oder zu filtern.
flatMap:
map:
filter:
flatMap: (1:n) Ein Array wird in alle Elemente des Arrays umgewandelt
map: (1:1) Wandelt ein Objekt in ein anderes um
filter: (1:0 oder 1:1) kann die Objektanzahl reduzieren