FunktionalePro II Flashcards

1
Q

Was ist der unterscheid zwischen java.util und java.io

A
  • Die Klassen aus java.io verarbeiten elementare Typen
  • Die Klassen aus java.util verarbeiten Objekte
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind Interfaces mit Default-Methoden

A

Schnittstelle (kann auch Funktionale Schnittstelle sein solange nur eine abstrakte Methode vorhanden)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist der Keren der Funktionalen Programmierung

A

Lambda-Ausdrücke erlauben, Methoden wie Objekte zu behandeln

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was macht Lambda mit Methoden

A

Lassen sich einfache Methoden in knapper funktionaler Schreibweise zu komplexen Methoden kombinieren

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was sind Streams

A

Eine Operationsfolge auf Daten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wie kann man Streams bezeichnen

A

Datenverarbeitung am Fließband

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Meist gilt im Sinne der funktionalen Programmierung:

A

Die Quelldaten des Streams bleiben unverändert, ein Verarbeitungsschritt erstellt jeweils einen neuen Stream mit den Ergebnissen-> Verarbeitungsmethoden ohne internen Zustand

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was nutzt man oft als Parameter bei Streams?

A

Oft Lambda-Ausdrücke als Parameter: Wie soll sortiert werden, welches Filterkriterium angewandt? -> Basiert auf funktionaler Schnittstelle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Stream Pipelines Aufbau

A

Am Anfang steht immer eine Datenquelle

In der Mitter steht die Verarbeitung (intermediäre Operation)

Am Ende steht eine Datensenke(terminale Operation)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie lassen sich zwei Stream verketten

A

Durch eine statische Methode

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welchen Performance Vorteil bieten primitive Typen bei Streams gegenüber Wrapper Streams

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wo wird die Intermediäre Operation durchgeführt

A

in der Mitte der Pipeline

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wieso ist die Intermediäre Operation “faul”

A

wir erst bei bedarf durchgeführt wenn die terminale operation es verlangt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was sind Intermediäre Operationen

A

Intermediäre Operationen bei Streams sind Operationen, die auf einem Stream angewendet werden, um die Elemente des Streams zu transformieren oder zu filtern.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

flatMap:
map:
filter:

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was macht die Datensenke?

A

Sie triggert die Verarbeitung:
Bei der Verarbeitung werden die Quellelemente nacheinander durch die Kette von intermediären Operationen geschickt, dabei verarbeitet und in der Datensenke “eingesammelt”

17
Q

Was für datensenken gibt es

A

Ohne Rückgabewert: forEach

Mit elementaren Rückgabewerten: count, sum

Mit nutzerdefinierten Rückgabewerten: collect

18
Q

wie prüft man ob alle Elemente im Stream bestimmte Eigenschaften erfüllen

A

allMatch, anyMatch, noneMatch

Rückgabe true/false

19
Q

Was sind die wichtigste Datensenken

A

findAny() findet irgendein Element im Stream

findFirst() findet das erste Element im Stream

20
Q

Was tun parallelStream()

A

Wenn ein parallelStream verwendet wird, wird der Stream in kleinere Teile aufgeteilt und diese Teile werden parallel auf verschiedenen Threads verarbeitet. Dies ermöglicht eine effizientere Nutzung von Mehrkernprozessoren und kann die Verarbeitungszeit für große Datenmengen erheblich reduzieren.