Lambda-Ausdrücke

Aralgut

Mitglied
Code:
// a
d.action( (p1,p2,p3) -> { if( p1!= 0) { return p3 +1;} else{ return p3;}});
//b
d.action( (p1,p2,p3) -> { if( p2 % 2 != 0) { return p3 + p1;} else{ return p3;}});
//c
d.action( (p1,p2,p3) -> { if(p1> 0) { return 1;} else{ return p3;}});
//d
d.action( (p1,p2,p3) -> p3 = p1);

Wie hättet ihr es gemacht? Ist es richtig?
 

Anhänge

  • 20190721_202307[1].jpg
    20190721_202307[1].jpg
    321,3 KB · Aufrufe: 52
Zuletzt bearbeitet:

httpdigest

Top Contributor
a ist leider falsch. Du musst p3 aufakkumulieren und nicht einfach 1 zurückgeben im Falle eines Wertes ungleich 0.
b hat dasselbe Problem, plus: Du berechnest die Summe der Elemente nicht
c ist korrekt
d ist korrekt, aber du machst eine unnötige Zuweisung an den Paramter der Lambda-Funktion. Ein simples `p1` würde reichen

Außerdem würde ich die Parameter nicht einfach nur p1, p2 und p3 nennen, sondern ihnen sprechende Namen geben, gemäß ihrer Bedeutung, die aus dem Aufrufkontext ersichtlich sind.
 

httpdigest

Top Contributor
Außerdem bietet sich der ternäre Operator ?: hier gerazu an:
Java:
//a
d.action((item, index, result) -> item != 0 ? result + 1 : result);
//b
d.action((item, index, result) -> index % 2 != 0 ? result + item : result);
//c
d.action((item, index, result) -> item > 0 ? 1 : result);
//d
d.action((item, index, result) -> item);
 

Aralgut

Mitglied
Außerdem bietet sich der ternäre Operator ?: hier gerazu an:
Java:
//a
d.action((item, index, result) -> item != 0 ? result + 1 : result);
//b
d.action((item, index, result) -> index % 2 != 0 ? result + item : result);
//c
d.action((item, index, result) -> item > 0 ? 1 : result);
//d
d.action((item, index, result) -> item);

Hab es korrigiert. So sollte es stimmen oder?

?: Kenn ich leider noch nicht
 

httpdigest

Top Contributor
Na dann einfach kurz lernen und dann nutzen. :) Wenn du gerade in der Schule bist, dann würde ich "Kenne ich nicht" als Ausrede gelten lassen. Da es sich hier aber mit Lambdaausdrücken um ein relativ fortgeschrittenes Topic handelt, nehme ich mal an, du studierst. Und da gelten solche Ausreden nicht mehr. Eigeninitiative!

Syntax: conditionExpr "?" trueExpr ":" falseExpr

Semantik: Das Ganze ist ein Ausdruck. conditionExpr ist ein boolescher Ausdruck, liefert also `true` oder `false` zurück. Liefert er `true`, ist der Wert des Gesamtausdrucks der, welcher von dem `trueExpr` Ausdruck generiert wird. Ansonsten wird der Wert von `falseExpr` zurückgeliefert.
 

Aralgut

Mitglied
Na dann einfach kurz lernen und dann nutzen. :) Wenn du gerade in der Schule bist, dann würde ich "Kenne ich nicht" als Ausrede gelten lassen. Da es sich hier aber mit Lambdaausdrücken um ein relativ fortgeschrittenes Topic handelt, nehme ich mal an, du studierst. Und da gelten solche Ausreden nicht mehr. Eigeninitiative!

Syntax: conditionExpr "?" trueExpr ":" falseExpr

Semantik: Das Ganze ist ein Ausdruck. conditionExpr ist ein boolescher Ausdruck, liefert also `true` oder `false` zurück. Liefert er `true`, ist der Wert des Gesamtausdrucks der, welcher von dem `trueExpr` Ausdruck generiert wird. Ansonsten wird der Wert von `falseExpr` zurückgeliefert.

Ja Studium :) Allerdings weiss ich nicht, ob ich das in der Klausur nutzen dürfte, da wir das nicht in der Vorlesung hatten. Aber trotzdem danke!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Lambda Ausdrücke: @FunctionalInterface Instanzen auf null prüfen Allgemeine Java-Themen 9
Neumi5694 Lambda - Block vs "Anweisungsliste" Allgemeine Java-Themen 8
R Lambda Expression in einer Methode execute() aufrufen (execute() ist eine Methode aus dem funktionalen Interface Command) Allgemeine Java-Themen 5
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
A Lambda und Streams verstehen Allgemeine Java-Themen 4
O Best Practice Lambda Expressions Allgemeine Java-Themen 3
Rudolf Compiler-Fehler Lambda als Argument kompiliert nicht Allgemeine Java-Themen 2
E Lambda filter performance Allgemeine Java-Themen 2
H Collector Generics Problem (incl. Stream & Lambda) Allgemeine Java-Themen 4
M Lambda "invalid method reference no suitable method found" Allgemeine Java-Themen 2
H Consumer (Java8 Lambda) an Timer übergeben Allgemeine Java-Themen 2
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
E Reguläre Ausdrücke: String-Ersetzung Allgemeine Java-Themen 0
M Lambada Ausdrücke - wie funktionieren und benutzt man sie? Allgemeine Java-Themen 5
G Reguläre Ausdrücke Allgemeine Java-Themen 11
Z Design um boolsche ausdrücke zu speichern & auszuwerten Allgemeine Java-Themen 3
G Reguläre Ausdrücke Allgemeine Java-Themen 2
S Reguläre Ausdrücke: Polynomterme Allgemeine Java-Themen 14
jstei001 Reguläre Ausdrücke bearbeiten/ändern Allgemeine Java-Themen 14
R Logische Ausdrücke in Java Allgemeine Java-Themen 4
C reguläre Ausdrücke finden nicht was sie finden sollen Allgemeine Java-Themen 8
Loyd Noch ne Regex-Frage: Verschachtelte Ausdrücke Allgemeine Java-Themen 4
H Geklammerte Ausdrücke nach Divide&Conquer Allgemeine Java-Themen 2
F Reguläre Ausdrücke und BBCode Allgemeine Java-Themen 10
J String für reguläre Ausdrücke escapen Allgemeine Java-Themen 2
C Reguläre Ausdrücke - X{0}?.* Allgemeine Java-Themen 8
B Parser für logische Ausdrücke Allgemeine Java-Themen 9
C Reguläre Ausdrücke, String rückwärts durchsuchen Allgemeine Java-Themen 6
J Expression Language für mathematische Ausdrücke Allgemeine Java-Themen 8
B Regeuläre Ausdrücke Allgemeine Java-Themen 8
I Reguläre Ausdrücke und das "~" Symbol Allgemeine Java-Themen 2
G arithmetische ausdrücke Allgemeine Java-Themen 5
B Reguläre ausdrücke mit variablen? Allgemeine Java-Themen 12
H Regex - Reguläre Ausdrücke Allgemeine Java-Themen 3
A Reguläre Ausdrücke vereinfachen Allgemeine Java-Themen 19
J Reguläre Ausdrücke Allgemeine Java-Themen 14
A Zufallswerte für reguläre Ausdrücke Allgemeine Java-Themen 15
G Reguläre Ausdrücke Allgemeine Java-Themen 8
R reguläre Ausdrücke Allgemeine Java-Themen 2
L Reguläre Ausdrücke und Fehlerbehandlung Allgemeine Java-Themen 10
RaoulDuke Reguläre Ausdrücke - Daten extrahieren Allgemeine Java-Themen 3
L reguläre Ausdrücke? Allgemeine Java-Themen 2
R Reguläre Ausdrücke (mehrzeilig) Allgemeine Java-Themen 2
M Regular Expression - verschiedene Ausdrücke testen (grep | ) Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben