Junior
Mida võimaldavad teha lambda avaldised Java's?
sobes.tech AI
Vastus AI-lt
Lambda väljendid (Lambda Expressions) Java-s, mis ilmusid Java 8-s, võimaldavad:
- Rakendada liideseid ühe abstraktse meetodiga (funktsionaalsed liidesed): see on peamine eesmärk. Lambda väljendid pakuvad lühikest süntaksit funktsionaalsete liideste näidete loomiseks:
// Enne Java 8
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("Hello pre-Java 8!");
}
};
// Java 8-ga
Runnable lambdaRunnable = () -> System.out.println("Hello Java 8!");
- Käivitada käitumist (funktsioone) meetodite argumentidena: see laiendab Java funktsionaalset programmeerimist. Meetodid võivad võtta lambda väljendeid parameetritena:
// Näide Stream API kasutamisest lambda-ga
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream()
.filter(name -> name.startsWith("A")) // lambda filter-ina
.forEach(System.out::println); // lambda (meetodi viide) forEach-ina
- Kasutada Stream API-d: Lambda väljendid on uue Stream API aluseks, võimaldades tõhusalt töödelda andmekogusid:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sumOfEven = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(Integer::intValue)
.sum();
-
Simpeldada anonüümsete sisemiste klasside rakendamist funktsionaalsetele liidesele: Lambda asendab selle kontekstis palju sõnu nõudvad anonüümsed klassid:
-
Parandada koodi loetavust: lihtsate operatsioonide jaoks muudab lambda koodi lühemaks ja arusaadavamaks:
-
Lubada hilinenud koodi täitmist: Lambda kirjeldab tegevust, mis täidetakse hiljem, kui see kutsutakse välja:
Lambda-l on juurdepääs ka välise vahemiku muutujatele (kui need on efektiivselt finalid).
Kokkuvõttes muudab lambda väljendid Java rohkem väljenduslikuks ja sobivaks funktsionaalseks programmeerimisstiiliks.