Junior
Ce permit expresiile lambda în Java?
sobes.tech AI
Răspuns de la AI
Expresiile lambda în Java, introduse în Java 8, permit:
- Implementarea interfețelor cu o singură metodă abstractă (interfețe funcționale): Acesta este scopul lor principal. Lambda-urile oferă o sintaxă concisă pentru crearea de instanțe ale interfețelor funcționale.
// Înainte de Java 8
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Salut înainte de Java 8!");
}
};
// Cu Java 8
Runnable lambdaRunnable = () -> System.out.println("Salut Java 8!");
- Transmiterea comportamentului (funcții) ca argumente ale metodelor: Acest lucru extinde posibilitățile programării funcționale în Java. Metodele pot accepta expresii lambda ca parametri.
// Exemplu de utilizare a API-ului Stream cu lambda
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream()
.filter(name -> name.startsWith("A")) // Lambda ca argument pentru filter
.forEach(System.out::println); // Lambda (Referință la metodă) ca argument pentru forEach
- Utilizarea API-ului Stream: Expresiile lambda sunt fundamentale pentru lucrul cu noul API Stream, permițând procesarea eficientă a colecțiilor de date.
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sumOfEven = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(Integer::intValue)
.sum();
-
Simplificarea implementării claselor interne anonime pentru interfețe funcționale: Lambda-urile înlocuiesc sintaxa lungă a claselor anonime în acest context.
-
Îmbunătățirea lizibilității codului: Pentru operații simple, lambda-urile fac codul mai concis și mai ușor de înțeles.
-
Permite executarea întârziată a codului: Expresia lambda descrie o acțiune care va fi executată mai târziu, când va fi apelată.
Lambda-urile au, de asemenea, acces la variabilele locale din mediul exterior (dacă sunt efectiv finale).
În general, expresiile lambda fac Java mai expresiv și mai potrivit pentru stilul de programare funcțional.