Bonjour Java Lambda

En écrivant du code qui répond à des exigences simples, comparons le cas sans Lambda avec le cas avec lui. Préparez une liste de nombres comme celle ci-dessous et considérez le processus consistant à doubler les nombres pour 100 ou plus et à les additionner. Spécifications: Additionnez les doubles pour 100 ou plus

number-list


final List<Integer> numbers = Arrays.asList(50, 100, 10, 400, 120, 30, 220);
Boîtier sans Lambda

Par exemple, vous pouvez vérifier les valeurs de la liste une par une, et si elle est de 100 ou plus, doublez la valeur et ajoutez-la au total. Avec ce genre de calcul, c'est simple et facile à comprendre, et il ne semble pas y avoir de problème majeur. Cependant, parce que l'idée de l'ingénieur de "vérifier les nombres un par un" est prise en sandwich entre les spécifications (en ajoutant les doublées pour 100 ou plus) comme moyen de le réaliser, Il peut s'agir d'un code trompeur.

without-lambda.java


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

Le montant total du code n'est pas si différent de ce qui précède. Cependant, la façon de lire le flux de traitement qui peut être vu à partir du code changera. "Filtrez 100 nombres ou plus de la liste, doublez-les et additionnez-les." Je n'ai écrit aucun code qui vérifie un par un dans une boucle. Cela peut être exprimé comme si les spécifications (doublées de 100 ou plus) étaient décrites telles quelles. Je ne pense pas que ce soit le cas dans tous les cas, mais je pense que vous pouvez écrire du code dans cet exemple qui soit moins trompeur par rapport aux spécifications requises.

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

Bonjour Java Lambda
Hello World avec AWS Lambda + Java
Java, bonjour le monde!
Java Hello World
[Java] Expression Lambda
Expression lambda Java
"Hello World" en Java
expression 1 de la table lambda neutre java
Quarkus enregistre Java Lambda! ??
Apprendre Java (1) - Hello World
Comprendre les expressions lambda Java 8
Variations d'expressions lambda Java
Hello World en Java
mémo d'expression java lambda
À propos des expressions Java lambda
expression lambda java [écriture de notes]
Expliquer les expressions lambda Java 8
Etudier Java 8 (expression lambda)
Évaluer java8 ~ Type Lambda ~
Expression lambda Java à nouveau
Utiliser des couches Lambda avec Java
[Java] Interface fonctionnelle / expression lambda
Flux Java8, résumé de l'expression lambda
java bonjour le monde, compilez, exécutez
Java
Les débutants en Java lisent Hello World
Java
Expression lambda Java apprise avec Comparator
[Introduction à Java] À propos des expressions lambda
Hello World pour le plugin Java ImageJ
Java sur AWS Lambda est-il lent?
Contenu d'apprentissage de base Java 9 (expression lambda)
Bonjour le monde de Java dans Eclipse maintenant
Qu'est-ce qu'une expression lambda (Java)
L'origine des expressions Java lambda
Comment utiliser les expressions Java lambda
Bonjour tout le monde en Java et Gradle
Apprendre Java (0)
Étudier Java ―― 3
[Java] tableau
Java protégé
[Java] Annotation
Module [Java]
Tableau Java
Étudier Java ―― 9
Java scratch scratch
Astuces Java, astuces
Méthodes Java
Méthode Java
Implémenter l'autorisation API Gateway Lambda dans Java Lambda
java (constructeur)
Tableau Java
[Java] ArrayDeque
java (remplacement)
java (méthode)
Chaîne Java
java (tableau)
Sérialisation Java
java débutant 4