[Pour les débutants] Comprendre rapidement les bases de Java 8 lambda

Et cet article?

Java 9 a déjà été rendu public, mais cet article est destiné à ceux qui souhaitent revoir à nouveau les expressions lambda ajoutées dans Java 8. Il sert également de résumé personnel. Je vous serais reconnaissant si vous pouviez signaler des erreurs!

Qu'est-ce que Lambda, style Lambda?

Le grand changement dans Java 8 est l'expression lambda. À l'origine, en mathématiques, il y avait une idée selon laquelle «une fonction est traitée comme une variable et opérée», et le nom λ (lambda) est souvent utilisé comme variable. L'expression lambda de Java incorpore cette idée mathématique dans Java, et je pense qu'il est facile de comprendre que le sens est "l'expression d'une fonction qui peut être traitée comme une valeur".

Par exemple, le code suivant.

(p) -> (p.getAge()) < 30)


Il s'agit d'une expression qui renvoie si l'âge de p est inférieur à 30 lorsque p est mis dans la fonction.

Écrivons une expression lambda

Comprenons l'expression lambda en écrivant un exemple d'expression lambda et en décomposant le code.

LambdaSample.java


public class LambdaSample {
    public static void main(String[] args) {
        Runnable r = () -> System.out.println("Hello Lambda!");
        r.run();
    }
}

Si vous essayez d'exécuter l'exemple ci-dessus, le résultat suivant sera affiché. hello lambda!

Le code écrit en expression lambda est ci-dessous.

() -> System.out.println("Hello Lambda!")


Si vous essayez d'écrire l'expression lambda dans le style d'écriture avant JDK8 ...

Si vous écrivez ce LambdaSample.java avant JDK8, ce sera comme suit.

RunnableSample.java


public class RunnableSample {
    public static void main(String[] args) {
       Runnable r = new Runnable() {
           @Override
           public void run() {
               System.out.println("Before Lambda!");
           }
       };
        r.run();
    }
}

Dans LambdaSample.java, les parties suivantes sont remplacées par des expressions lambda.

JDK8 ou version antérieure


new Runnable() {
           @Override
           public void run() {
               System.out.println("Before Lambda!");
           }
       }

JDK8


() -> System.out.println("Hello Lambda!")

La quantité de code a considérablement diminué.

Ce code écrit avant JDK8 est également appelé "classe anonyme". En d'autres termes, une expression lambda peut être considérée comme «une réécriture d'un objet de classe anonyme qui implémente une interface».

Ouvrages / sites de référence

http://java-code.jp/106 https://qiita.com/sanotyan1202/items/64593e8e981e8d6439d3 ["Style Lambda" commençant par Java8](https://www.amazon.co.jp/Java8%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82 % 8B% E3% 80% 8C% E3% 83% A9% E3% 83% A0% E3% 83% 80% E5% BC% 8F% E3% 80% 8D-I% E3% 83% BB-BOOKS-% E6% B8% 85% E6% B0% B4-% E7% BE% 8E% E6% A8% B9 / dp / 4777518418 / ref = sr_1_2? Ie = UTF8 & qid = 1508761078 & sr = 8-2 & mots-clés = java8) [Programmation pratique Java SE 8 que les programmeurs Java veulent apprendre](https://www.amazon.co.jp/Java%E3%83%97%E3%83%AD%E3%82%B0%E3% 83% A9% E3% 83% 9E% E3% 83% BC% E3% 81% AA% E3% 82% 89% E7% BF% 92% E5% BE% 97% E3% 81% 97% E3% 81% A6% E3% 81% 8A% E3% 81% 8D% E3% 81% 9F% E3% 81% 84-Java-SE-8-% E5% AE% 9F% E8% B7% B5% E3% 83% 97 % E3% 83% AD% E3% 82% B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0-ebook / dp / B00VM0FMIW / ref = sr_1_3? Ie = UTF8 & qid = 1508761078 & sr = 8-3 & mots-clés = java8)

Recommended Posts

[Pour les débutants] Comprendre rapidement les bases de Java 8 lambda
[Introduction à Java] Bases de l'arithmétique Java (pour les débutants)
[Pour les débutants] DI ~ Les bases de DI et DI au printemps ~
L'origine des expressions Java lambda
[jour: 5] J'ai résumé les bases de Java
Retour sur les bases de Java
[Rails] Articles pour les débutants pour organiser et comprendre le flux de form_with
Une collection de questions simples pour les débutants Java
Comprendre les expressions lambda Java 8
Utiliser des expressions Java lambda en dehors de l'API Stream
Introduction à Java pour les débutants Connaissance de base du langage Java ①
J'ai résumé les types et les bases des exceptions Java
Liste des instructions Java fréquemment utilisées (pour les débutants et les débutants)
[Java] Compréhension débutante de Servlet-②
Surveillance Docker-expliquant les bases des bases-
Principes de base de l'utilisation des caractères (Java)
Exécution de débogage Java [pour les débutants Java]
[Java] Instruction de base pour les débutants
[Java] Compréhension débutante de Servlet-①
Résumé des bases du langage Java
Java pour les débutants, masquage des données
Application Java pour les débutants: stream
[Pour les débutants] Explication des classes, des instances et des statiques en Java
Je n'ai pas vraiment compris le comportement de Java Scanner et .nextLine ()
J'ai essayé de résumer les bases de kotlin et java
Les débutants en Java ont brièvement résumé le comportement de Array et ArrayList
[Pour les débutants] À propos de la syntaxe JavaScript expliquée par Java Gold
L'idée de C # (expression lambda, pour phrase) à mâcher
Réintroduction à Java for Humanities 0: Comprendre l'acte de programmation
Je vais expliquer l'imbrication des déclarations qui tuent les débutants
Comprendre le mécanisme de base de log4j2.xml
À propos des bases du développement Android
Examiner les informations système de l'environnement d'exploitation AWS Lambda en Java
[java8] Pour comprendre l'API Stream
[Édition Java] Histoire de la sérialisation
[Pour les débutants] Exécutez Selenium sur Java
Les bases de SpringBoot + MyBatis + MySQL
Examiner la liste des polices disponibles dans AWS Lambda + Java
J'ai essayé le type d'entrée / sortie de Java Lambda ~ Map edition ~
Java pour les débutants, les expressions et les opérateurs 2
Génériques Kotlin pour les développeurs Java
[Pour les débutants en Java] À propos de la gestion des exceptions
[Android] Définir dynamiquement la hauteur de ListView avec copie (pour les débutants)
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
Classes et instances Java pour les débutants
J'ai écrit EX25 du guide de programmation AtCoder pour les débutants (APG4b) en java.
[Communication Socket (Java)] Impressions de la mise en œuvre de la communication Socket dans la pratique pour la première fois
Implémentation de la méthode de clonage pour Java Record
Obtenez le résultat de POST en Java
[Challenge CircleCI from 0] Apprenez les bases de CircleCI
Référence Java à comprendre dans la figure
Mémorandum du nouveau diplômé SES [Java basics]
Récapitulons maintenant l'expression lambda Java
[Java] Obtenez le jour d'un jour spécifique
Comprendre l'échantillon officiel Coffee of Dagger2
Mémo: [Java] Vérifiez le contenu du répertoire
Apprenez de «Et alors», les bases de Java [pour les débutants]