Junior
Ką leidžia daryti lambda išraiškos Java?
sobes.tech AI
Atsakymas iš AI
Lambdų išraiškos (Lambda Expressions) Java kalboje, kurios atsirado Java 8, leidžia:
- Įgyvendinti interfeisus su vienu abstrakčiu metodu (funkciniai interfeisai): tai pagrindinė paskirtis. Lambdų išraiškos suteikia trumpą sintaksę funkcinių interfeisų pavyzdžiams kurti:
// Iki Java 8
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Hello pre-Java 8!");
}
};
// Su Java 8
Runnable lambdaRunnable = () -> System.out.println("Hello Java 8!");
- Perduoti elgesį (funkcijas) kaip metodų argumentus: tai plečia funkcinių programavimo galimybes Java kalboje. Metodai gali priimti lambdas kaip parametrus:
// Stream API naudojimo pavyzdys su lambda
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream()
.filter(name -> name.startsWith("A")) // lambda kaip filter argumentas
.forEach(System.out::println); // lambda (metodo nuoroda) kaip forEach argumentas
- Naudoti Stream API: Lambdas yra pagrindas naujai Stream API, leidžiančiai efektyviai apdoroti duomenų rinkinius:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sumOfEven = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(Integer::intValue)
.sum();
-
Supaprastinti anoniminių vidinių klasių įgyvendinimą funkciniams interfeisams: Lambdas pakeičia daug žodžių reikalaujančias anonimines klases šiame kontekste:
-
Pagerinti kodo skaitomumą: paprastoms operacijoms lambdas daro kodą trumpesnį ir aiškesnį:
-
Leisti atidėliotą kodo vykdymą: Lambda apibūdina veiksmą, kuris bus vykdomas vėliau, kai jis bus iškviestas:
Lambdas taip pat turi prieigą prie išorinės apimties kintamųjų (jei jie yra efektyviai finalūs).
Apskritai, lambdas daro Java labiau išraiškingą ir tinkamą funkciniam programavimo stiliui.