Junior
Šta su lambda izrazi u Javi?
sobes.tech АИ
Одговор од АИ
Izraz lambda u Javi je anonimna (bez imena) funkcija koja implementira funkcionalni interfejs.
Glavne karakteristike:
- Nemaju ime.
- Mogu imati parametre.
- Telo može sastojati od jednog izraza ili bloka naredbi.
- Tip povratne vrednosti nije naveden (automatski se zaključuje).
- Neophodni su za funkcionalno programiranje i rad sa tokovima (Streams API).
Sintaksa:
// Bez parametara
() -> { // telo }
// Sa jednim parametrom (tip može biti izostavljen)
param -> izraz
// Sa više parametara (tip može biti izostavljen, potrebne su zagrade)
(param1, param2) -> { // telo }
Primer upotrebe:
// Funkcionalni interfejs (ugrađeni)
import java.util.function.Consumer;
// Implementacija pomoću lambda
Consumer<String> štampač = s -> System.out.println(s);
štampač.accept("Zdravo svete!");
// Upotreba u metodu koja prihvata funkcionalni interfejs
import java.util.Arrays;
import java.util.List;
List<Integer> brojevi = Arrays.asList(1, 2, 3, 4, 5);
brojevi.forEach(n -> System.out.println(n)); // forEach prihvata Consumer
Prednosti:
- Kraći kod.
- Poboljšana čitljivost (u jednostavnim slučajevima).
- Mogućnost korišćenja funkcionalnog programiranja.
- Olakšava rad sa kolekcijama i višestrukim nitima.
Ograničenja:
- Ugnježdene ili duge lambda izraze može biti teško razumeti.
- Nemaju stanje (ne mogu imati polja instance).