Lambda izrazi pružaju sažet način za predstavljanje funkcionalnosti korištenjem anonimnih metoda. Koristeći lambda izraze u Javi, programeri mogu napisati čišći i efikasniji kod za iteraciju preko kolekcija, čineći na taj način cjelokupni kod lakšim za čitanje i održavanje. U ovom članku ćemo prvo razgovarati o uobičajenom problemu s kojim se programer može susresti, a mi ćemo predložiti rješenje koristeći Java-ine lambda izraze. Zatim ćemo proći kroz korak po korak objašnjenje implementacije ovog rješenja korištenjem lambda izraza i foreach metode.
**
Problem povezan sa Lambda Foreach-om
**
Pretpostavimo da programer radi sa listom objekata i želi da izvrši neke radnje na svakom objektu u kolekciji koristeći metodu foreach. U početku se čini jednostavnim koristiti lambda izraz za izvođenje radnji. Međutim, kada se bavi višestrukim iskazima unutar lambda izraza, programer nailazi na izazov. Problem se javlja zbog ograničenja Java-inih lambda izraza, koji dozvoljavaju procjenu samo jednog izraza unutar lambda tijela.
**
Rješenje koje koristi Lambda izraze s višestrukim iskazima
**
Da bi prevazišao ovo ograničenje i izvršio više naredbi unutar lambda izraza, programer može koristiti pomoćnu metodu za omotavanje izraza. Ovaj pristup omogućava programeru da održi konciznu notaciju lambda izraza dok je i dalje u mogućnosti da izvodi različite akcije na svakoj iteraciji kolekcije. Analizirajmo ovo rješenje koristeći primjer:
import java.util.Arrays; import java.util.List; public class LambdaForeachMultipleStatements { public static void main(String[] args) { List<String> items = Arrays.asList("apple", "banana", "orange"); items.forEach(item -> performActions(item)); } private static void performActions(String item) { System.out.println("Item: " + item); System.out.println("Item length: " + item.length()); } }
**
Korak po korak objašnjenje koda
**
1. Počinjemo uvozom potrebnih paketa: `java.util.Arrays` i `java.util.List`.
2. Klasa `LambdaForeachMultipleStatements` je definirana `main` metodom za izvršavanje našeg koda.
3. Kreiramo listu nizova pod nazivom `items` koja sadrži tri elementa: “jabuka”, “banana” i “narandža”.
4. Koristimo metodu `forEach` za ponavljanje kroz listu `items`, a za svaki element pozivamo pomoćnu metodu `performActions`.
5. Unutar pomoćne metode `performActions`, imamo dvije izjave: jednu za ispis stavke, a drugu za ispis njene dužine.
Umotavanjem naših višestrukih iskaza u pomoćnu metodu, još uvijek možemo koristiti lambda izraze za sažet i lak za čitanje kod. Ovo nam također omogućava skaliranje na složenije operacije bez zatrpavanja foreach izraza.
**
Povezane biblioteke i funkcije
**
Pored rješenja istaknutog u ovom članku, programeri također mogu istražiti sljedeće biblioteke i funkcije kako bi im pomogli da postignu slične rezultate:
- Java Stream API
- Reference metoda
- Java funkcionalna sučelja
- Apache Commons Collections Library
Ove biblioteke i funkcije mogu pomoći programerima da dodatno pojednostave svoj kod, poboljšaju čitljivost i olakšaju rad sa kolekcijama.