logo

Fonction anonyme en Java

En Java, fonctions anonymes , également connues sous le nom d'expressions lambda. Il a été introduit dans Java 8 comme moyen de fournir un code plus concis et plus lisible. Ils nous permettent de définir une fonction dans une seule ligne de code sans avoir à définir explicitement une classe ou une interface.

caractère dans la chaîne

Qu'est-ce qu'une fonction anonyme ?

Une fonction anonyme est une fonction qui n'a pas de nom et n'est pas liée à un identifiant. Il est généralement défini en ligne et peut être transmis comme argument à une autre fonction ou renvoyé comme valeur par une fonction. En Java, les fonctions anonymes sont implémentées sous forme d'expressions lambda, qui constituent un moyen abrégé de définir une fonction anonyme.

Syntaxe

La syntaxe d'une fonction anonyme en Java est la suivante :

 (parameters) -> { body } 

Les paramètres sont les entrées de la fonction et le corps est le code qui s'exécute lorsque la fonction est appelée. Voici un exemple de fonction anonyme qui prend deux entiers en entrée et renvoie leur somme :

 (int a, int b) -> { return a + b; } 

La fonction anonyme ci-dessus peut être passée en argument à une autre fonction ou affectée à une variable :

 Function add = (a, b) -> a + b; 

Dans cet exemple, nous définissons une variable appelée add qui est une fonction qui prend deux entiers comme entrées et renvoie leur somme.

Avantages des fonctions anonymes

L'utilisation de fonctions anonymes en Java présente plusieurs avantages, notamment :

Syntaxe concise : Les fonctions anonymes offrent un moyen concis de définir une fonction sans avoir à définir une classe ou une interface distincte.

Code lisible : Étant donné que les fonctions anonymes sont définies en ligne, le code peut être plus facile à lire et à comprendre.

La flexibilité: Les fonctions anonymes peuvent être transmises comme arguments à d'autres fonctions ou renvoyées sous forme de valeurs à partir de fonctions, offrant ainsi plus de flexibilité dans la manière dont les fonctions sont utilisées.

Performance améliorée: L'utilisation de fonctions anonymes peut améliorer les performances en réduisant la quantité de mémoire et la puissance de traitement requises pour définir et appeler des fonctions.

voici un exemple de code Java qui démontre l'utilisation de fonctions anonymes (expressions lambda) pour filtrer une liste d'entiers :

AnonymousFunctionExample.java

 import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; public class AnonymousFunctionExample { public static void main(String[] args) { List numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); numbers.add(5); // Filter the list to only include even numbers Predicate isEven = (n) -> n % 2 == 0; List evenNumbers = filter(numbers, isEven); // Print the even numbers System.out.println('Even numbers:'); for (Integer number : evenNumbers) { System.out.println(number); } } // Filter a list using a predicate public static List filter(List list, Predicate predicate) { List result = new ArrayList(); for (T element : list) { if (predicate.test(element)) { result.add(element); } } return result; } } 

Sortir:

 Even numbers: 2 4 

Dans ce code, nous définissons une liste d'entiers, puis utilisons une fonction anonyme (expression lambda) pour définir un prédicat qui filtre la liste pour n'inclure que les nombres pairs. Nous utilisons ensuite la méthode filter pour appliquer le prédicat à la liste et renvoyer une nouvelle liste de nombres pairs. Enfin, nous imprimons les nombres pairs à l’aide d’une boucle for.

Voici un autre exemple de code Java qui démontre l'utilisation de fonctions anonymes (expressions lambda) pour trier une liste de chaînes :

AnonymousFunctionExample.java

 import java.util.ArrayList; import java.util.Comparator; import java.util.List; public class AnonymousFunctionExample { public static void main(String[] args) { List fruits = new ArrayList(); fruits.add('Apple'); fruits.add('Banana'); fruits.add('Grape'); fruits.add('Orange'); fruits.add('Pineapple'); // Sort the list of fruits alphabetically fruits.sort((f1, f2) -> f1.compareTo(f2)); // Print the sorted list of fruits System.out.println('Sorted list of fruits:'); for (String fruit : fruits) { System.out.println(fruit); } } } 

Sortir:

 Sorted list of fruits: Apple Banana Grape Orange Pineapple 

Dans le code ci-dessus, nous avons défini une liste de fruits puis utilisons une fonction anonyme (expression lambda) pour définir un comparateur qui trie la liste par ordre alphabétique. Nous utilisons ensuite la méthode sort pour appliquer le comparateur à la liste et la trier. Enfin, nous imprimons la liste triée des fruits à l’aide d’une boucle for.

Conclusion

Les fonctions anonymes en Java offrent un moyen concis et lisible de définir des fonctions sans avoir à définir une classe ou une interface distincte. Ils peuvent être utilisés pour améliorer les performances du code et offrir plus de flexibilité dans la manière dont les fonctions sont utilisées. Avec l'introduction des expressions lambda dans Java 8, les fonctions anonymes sont devenues un outil important permettant aux développeurs d'écrire du code plus efficace et plus maintenable.