Maison  >  Article  >  Java  >  Qu'est-ce qu'une fonction Lambda en Java et exemple.

Qu'est-ce qu'une fonction Lambda en Java et exemple.

Linda Hamilton
Linda Hamiltonoriginal
2024-09-20 06:41:31311parcourir

What Is a Lambda Function in Java and Example.

1. Comprendre les fonctions Lambda

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.

1.1 Qu'est-ce qu'une fonction Lambda ?

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
}

1.2 Interfaces fonctionnelles

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.

1.3 Avantages des fonctions Lambda

  • Concision : les expressions lambda aident à réduire le code passe-partout.
  • Lisibilité : Ils rendent le code plus lisible et expressif.
  • Facilité d'utilisation : utile dans des scénarios tels que les opérations de flux et la gestion des événements.

2. Utilisation des fonctions Lambda en Java

2.1 Exemple de base

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!

2.2 Exemple avancé : utilisation de Lambda avec des collections

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

2.3 Démo pratique : Filtrage avec des flux

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

3. Conclusion

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!

Déclaration:
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