Lambdy w Java

Lambdy w Java to funkcje anonimowe, które umożliwiają zwięzłe przekazywanie bloków kodu do metod. Wprowadzone w Java 8, znacznie upraszczają kod poprzez eliminację potrzeby używania anonimowych klas wewnętrznych. Lambdy są szczególnie przydatne w operacjach na kolekcjach, takich jak iteracje, filtracje czy mapowania.

Przykład użycia lambdy

W tym przykładzie przedstawimy sposób użycia lambdy do filtrowania listy osób po kryterium wieku. Utworzymy klasę Person z dwoma polami: imieniem i wiekiem, a następnie użyjemy lambdy do wybrania osób pełnoletnich.

Klasa Person
public class Person {
    String name;
    int age;

    // Konstruktor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Gettery
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}
Filtrowanie z użyciem lambdy

W głównej klasie programu zdefiniujemy listę osób i przefiltrujemy ją, aby wyświetlić tylko pełnoletnie osoby.

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class LambdaDemo {

    public static void main(String[] args) {
        // Lista osób
        List<Person> people = new ArrayList<>();
        people.add(new Person("Jan", 18));
        people.add(new Person("Anna", 16));
        people.add(new Person("Paweł", 21));

        // Filtrowanie osób pełnoletnich z użyciem lambdy
        List<Person> adults = people.stream()
                .filter(p -> p.getAge() >= 18)
                .collect(Collectors.toList());

        // Wyświetlanie pełnoletnich osób
        adults.forEach(a -> System.out.println(a.getName()));
    }
}

Wyjaśnienie kodu

  • Używamy strumieni (stream()) do przetworzenia listy osób. Strumienie to sekwencje elementów wspierające sekwencyjne i równoległe operacje agregujące.
  • Metoda filter() przyjmuje lambdę jako argument, określającą kryterium filtrowania. W naszym przypadku filtrujemy osoby pełnoletnie (p.getAge() >= 18).
  • Na koniec, za pomocą metody collect(), zbieramy wyniki do nowej listy.
  • Wyświetlamy nazwy osób pełnoletnich za pomocą metody forEach(), również korzystając z lambdy do określenia akcji dla każdego elementu listy.

Podsumowanie

Lambdy w Java umożliwiają tworzenie czystszego i bardziej zwięzłego kodu, szczególnie przy manipulacji kolekcjami i wykonaniu operacji takich jak filtracja, mapowanie czy iteracja. Dzięki lambdom, Java staje się bardziej funkcjonalna, a programowanie w niej – przyjemniejsze i efektywniejsze. Wprowadzenie lambd w Java 8 było znaczącym krokiem w ewolucji języka, otwierającym nowe możliwości dla programistów.

Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video Java w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.

Scroll to Top