Les fonctions Lambda, ou expressions lambda, sont un moyen de fournir une syntaxe claire et concise pour écrire des méthodes anonymes en Java. Ils vous permettent d'écrire des implémentations d'interfaces fonctionnelles d'une manière plus lisible et expressive.
Une fonction lambda en Java est un court bloc de code qui prend des paramètres et renvoie une valeur. Il s'agit essentiellement d'une méthode sans nom, vous permettant de transmettre des fonctionnalités comme argument aux méthodes ou de les stocker sous forme de variable.
Syntaxe
La syntaxe de base d'une fonction lambda est la suivante :
(parameters) -> expression
Ou, si vous avez plusieurs déclarations :
(parameters) -> { // multiple statements }
Pour utiliser des expressions lambda, vous avez besoin d'une interface fonctionnelle. Une interface fonctionnelle est une interface qui possède exactement une méthode abstraite. Les exemples incluent les interfaces Runnable, Callable et personnalisées avec une seule méthode abstraite.
Commençons par un exemple simple de fonction lambda en Java. Nous utiliserons une interface Runnable pour démontrer :
public class LambdaExample { public static void main(String[] args) { // Traditional way Runnable oldRunnable = new Runnable() { @Override public void run() { System.out.println("Running in a thread!"); } }; new Thread(oldRunnable).start(); // Using Lambda Expression Runnable lambdaRunnable = () -> System.out.println("Running in a thread with Lambda!"); new Thread(lambdaRunnable).start(); } }
Sortie
Running in a thread! Running in a thread with Lambda!
Les fonctions Lambda sont particulièrement utiles lorsque vous travaillez avec des collections. Voici un exemple qui montre le tri d'une liste de chaînes à l'aide d'expressions lambda :
import java.util.Arrays; import java.util.List; public class LambdaListExample { public static void main(String[] args) { List<String> names = Arrays.asList("John", "Jane", "Paul", "Alice"); // Using lambda to sort the list names.sort((name1, name2) -> name1.compareTo(name2)); // Printing sorted names names.forEach(name -> System.out.println(name)); } }
Sortie
Alice Jane John Paul
Les expressions Lambda brillent lorsqu'elles sont combinées avec Java Streams pour des opérations telles que le filtrage et le mappage. Voici comment utiliser les lambdas pour filtrer et traiter une liste d'entiers :
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class LambdaStreamExample { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Filtering even numbers and squaring them List<Integer> squaredEvens = numbers.stream() .filter(n -> n % 2 == 0) .map(n -> n * n) .collect(Collectors.toList()); // Printing the result squaredEvens.forEach(System.out::println); } }
Sortie
4 16 36 64 100
Les fonctions Lambda en Java offrent une manière plus compacte et expressive de gérer les méthodes anonymes et les interfaces fonctionnelles. Ils peuvent grandement simplifier votre code et améliorer sa lisibilité, en particulier lorsqu'il s'agit de collections et d'opérations de flux.
Si vous avez des questions ou avez besoin de précisions supplémentaires, n'hésitez pas à laisser un commentaire ci-dessous !
Lisez les articles plus sur : Qu'est-ce qu'une fonction Lambda en Java et exemple.
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!