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.
(paramètre1, paramètre2, ..., paramètreN) -> {
// 函数体 // 可以是一条简单的表达式 // 或者是一系列语句块
}
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.
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
numbers.forEach(new Consumer< Integer>() {
@Override public void accept(Integer number) { System.out.println(number); }
});
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.
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);
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.
Ce qui suit est un exemple de code utilisant des références de méthode :
List
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接口的使用 Listnumbers = 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); } }
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!