Maison > Java > javaDidacticiel > le corps du texte

Comment simplifier la programmation fonctionnelle à l'aide d'expressions Lambda en Java ?

王林
Libérer: 2023-08-03 23:21:27
original
1585 Les gens l'ont consulté

Comment simplifier la programmation fonctionnelle à l'aide d'expressions Lambda en Java ?

Dans les versions précédentes de Java, la programmation fonctionnelle était une tâche relativement fastidieuse. Cependant, depuis que la version Java 8 a introduit les expressions Lambda, la programmation fonctionnelle est devenue plus simple et plus pratique en Java. Les expressions Lambda nous permettent d'écrire des fonctions anonymes de manière plus concise, réduisant ainsi la complexité du code. Cet article explique comment utiliser les expressions lambda pour simplifier la programmation fonctionnelle et l'illustre avec des exemples de code.

  1. Syntaxe de base de l'expression Lambda
    La syntaxe de base de l'expression Lambda est la suivante :

(paramètre1, paramètre2, ..., paramètreN) -> {

// 函数体
// 可以是一条简单的表达式
// 或者是一系列语句块
Copier après la connexion

}

où, liste de paramètres (paramètre1, paramètre2 , ..., paramètreN) est facultatif. S'il existe des paramètres, ils doivent être mis entre parenthèses. Flèche -> est utilisée pour séparer les paramètres et le corps de la fonction, et le côté gauche de la flèche est la liste des paramètres et le côté droit est le corps de la fonction. Le corps de la fonction peut être une simple expression ou une série de blocs d’instructions.

  1. Utilisez des expressions Lambda pour simplifier les interfaces fonctionnelles
    L'interface fonctionnelle fait référence à une interface qui ne contient qu'une seule méthode abstraite. L'interface de fonction est la base des expressions Lambda. Les expressions Lambda ne peuvent être utilisées que dans les interfaces fonctionnelles. Java a défini certaines interfaces de fonctions courantes, telles que Consommateur, Fournisseur, Fonction, etc.

Prenons l'exemple de l'interface de la fonction Consumer. L'interface Consumer n'a qu'une seule méthode abstraite accept, qui reçoit un paramètre et renvoie void. Avant Java 8, nous devions implémenter l'interface Consumer en créant une classe interne anonyme, par exemple :

List number = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(new Consumer< Integer>() {

@Override
public void accept(Integer number) {
    System.out.println(number);
}
Copier après la connexion

});

En utilisant les expressions Lambda, nous pouvons simplifier le code ci-dessus en :

List
numbers.forEach(number -> System.out.println(number));

Avec les expressions Lambda, nous pouvons directement transmettre la fonction en tant que paramètre à la méthode forEach sans définir explicitement une classe interne anonyme.

  1. Programmation fonctionnelle avec expressions Lambda
    Les expressions Lambda sont particulièrement utiles en programmation fonctionnelle. En programmation fonctionnelle, nous utilisons souvent des fonctions d'ordre supérieur, qui sont des fonctions qui acceptent ou renvoient une fonction.

Ce qui suit est un exemple de code pour la programmation fonctionnelle utilisant des expressions Lambda :

int[] number = {1, 2, 3, 4, 5};
int sum = Arrays.stream(numbers)

            .reduce(0, (a, b) -> a + b);
Copier après la connexion

Dans le au-dessus du code, nous utilisons l'expression Lambda comme paramètre à transmettre à la méthode de réduction. L'expression Lambda (a, b) -> a + b implémente des opérations binaires et calcule la somme de deux nombres. La méthode de réduction accumule et additionne les éléments du tableau, la valeur initiale étant 0.

  1. Référence de méthode pour les expressions Lambda
    En plus des expressions Lambda, nous pouvons également utiliser des références de méthode pour simplifier la programmation fonctionnelle. Les références de méthode nous permettent de référencer directement une méthode ou un constructeur existant au lieu de redéfinir une expression Lambda.

Ce qui suit est un exemple de code utilisant des références de méthode :

List strings = Arrays.asList("Hello", "Lambda", "Expression");
strings.forEach(System.out::println) ;

Dans le code ci-dessus, nous implémentons le parcours et la sortie de la liste de chaînes en référençant la méthode println de System.out.

Résumé :
L'introduction des expressions Lambda simplifie grandement la mise en œuvre de la programmation fonctionnelle en Java. Nous pouvons utiliser des expressions Lambda pour simplifier la définition de classes internes anonymes, réduisant ainsi la quantité de code et la complexité. Les expressions Lambda nous permettent également d'utiliser des références de fonctions et de méthodes d'ordre supérieur pour obtenir un style de programmation plus concis et flexible. En apprenant et en appliquant les expressions Lambda, nous pouvons effectuer plus facilement une programmation fonctionnelle en Java.

Le code de référence est le suivant :

import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;

public class LambdaExample {
    public static void main(String[] args) {
        // 示例1:使用Lambda表达式简化Consumer接口的使用
        List numbers = Arrays.asList(1, 2, 3, 4, 5);
        numbers.forEach(number -> System.out.println(number));

        // 示例2:使用Lambda表达式进行函数式编程
        int[] intNumbers = {1, 2, 3, 4, 5};
        int sum = Arrays.stream(intNumbers)
                        .reduce(0, (a, b) -> a + b);
        System.out.println("Sum: " + sum);

        // 示例3:使用方法引用简化函数式编程
        List strings = Arrays.asList("Hello", "Lambda", "Expression");
        strings.forEach(System.out::println);
    }
}
Copier après la connexion

J'espère que l'introduction et l'exemple de code de cet article pourront aider les lecteurs à mieux comprendre et appliquer les expressions Lambda en Java, simplifiant ainsi la mise en œuvre de la programmation fonctionnelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal