Hallo Java Lambda

Vergleichen wir beim Schreiben von Code, der einfache Anforderungen erfüllt, den Fall ohne Lambda mit dem Fall damit. Bereiten Sie eine Liste mit Zahlen wie die folgende vor und überlegen Sie, wie Sie die Zahlen für 100 oder mehr verdoppeln können. Technische Daten: Addieren Sie die Doppel für 100 oder mehr

number-list


final List<Integer> numbers = Arrays.asList(50, 100, 10, 400, 120, 30, 220);
Fall ohne Lambda

Sie können beispielsweise die Werte in der Liste einzeln überprüfen. Wenn der Wert 100 oder mehr beträgt, verdoppeln Sie den Wert und addieren Sie ihn zur Gesamtsumme. Mit dieser Art der Berechnung ist es einfach und leicht zu verstehen, und es scheint kein großes Problem zu geben. Dies liegt jedoch ein wenig daran, dass die Idee des Ingenieurs, "die Zahlen einzeln zu überprüfen", zwischen den Spezifikationen (Hinzufügen der doppelten für 100 oder mehr) als eine Möglichkeit zur Realisierung liegt. Es kann irreführender Code sein.

without-lambda.java


int total = 0;
for (Integer number : numbers) {
  if (number >= 100) {
    total += number * 2;
  }
}
System.out.println("Total is " + total);
Fall mit Lambda

Die Gesamtmenge an Code unterscheidet sich nicht so stark von der oben genannten. Das Lesen des Verarbeitungsablaufs, der aus dem Code ersichtlich ist, ändert sich jedoch. "Filtern Sie 100 oder mehr Zahlen aus der Liste, verdoppeln Sie sie und addieren Sie sie." Ich habe keinen Code geschrieben, der einen nach dem anderen in einer Schleife überprüft. Es kann so ausgedrückt werden, als ob die Spezifikationen (verdoppelt um 100 oder mehr) so beschrieben werden, wie sie sind. Ich denke nicht, dass dies in allen Fällen der Fall ist, aber ich denke, dass Sie in diesem Beispiel Code schreiben können, der weniger irreführend für die erforderlichen Spezifikationen ist.

with-lambda.java


int total = 0;
total = numbers.stream()
  .filter(num -> num >= 100)
  .map(num -> num * 2)
  .reduce(0, (base, value) -> base + value);
System.out.println("Total is " + total);

Recommended Posts

Hallo Java Lambda
Hallo Welt mit AWS Lambda + Java
Java, Hallo Welt!
Java Hallo Welt
[Java] Lambda-Ausdruck
Java Lambda Ausdruck
"Hallo Welt" in Java
Java Neutral Lambda Tabellenausdruck 1
Quarkus rettet Java Lambda! ??
Java lernen (1) -Hallo Welt
Verstehen Sie Java 8 Lambda-Ausdrücke
Variationen von Java-Lambda-Ausdrücken
Hallo Welt in Java
Java Lambda Ausdruck Memo
Über Java-Lambda-Ausdrücke
Java Lambda Ausdruck [Notiz schreiben]
Erläutern Sie Java 8-Lambda-Ausdrücke
Java 8 studieren (Lambda-Ausdruck)
Überprüfen Sie java8 ~ Lambda Typ ~
Wieder Java-Lambda-Ausdruck
Verwenden Sie Lambda-Ebenen mit Java
[Java] Funktionsschnittstelle / Lambda-Ausdruck
Java8-Stream, Zusammenfassung des Lambda-Ausdrucks
Java Hallo Welt, kompilieren, ausführen
Java
Java-Anfänger lesen Hello World
Java
Java-Lambda-Ausdruck, der mit Comparator gelernt wurde
[Einführung in Java] Über Lambda-Ausdrücke
Hallo Welt für ImageJ Java Plugin
Ist Java unter AWS Lambda langsam?
Java Basic Learning Content 9 (Lambda-Ausdruck)
Hallo Welt von Java in Eclipse jetzt
Was ist ein Lambda-Ausdruck (Java)
Der Ursprung von Java-Lambda-Ausdrücken
Verwendung von Java-Lambda-Ausdrücken
Hallo Welt in Java und Gradle
Java lernen (0)
Java studieren ―― 3
[Java] -Array
Java geschützt
[Java] Anmerkung
[Java] Modul
Java-Array
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Java-Methoden
Java-Methode
Implementieren Sie API Gateway Lambda Authorizer in Java Lambda
Java (Konstruktor)
Java-Array
[Java] ArrayDeque
Java (überschreiben)
Java (Methode)
Java-Zeichenfolge
Java (Array)
Java-Serialisierung
Java Anfänger 4