Predykaty w Javie

Predykat w Javie to funkcja interfejsowa zdefiniowana w pakiecie java.util.function. Interfejs Predicate<T> reprezentuje wyrażenie przyjmujące jeden argument typu T i zwracające wartość typu boolean. Jest to często używane w programowaniu funkcyjnym Javy, na przykład przy filtracji danych w kolekcjach.

Przykład użycia predykatu w Javie

W tym przykładzie stworzymy prosty system filtracji osób, używając predykatu do określenia, czy dana osoba spełnia określone kryteria (np. czy osoba jest pełnoletnia).

Definicja klasy Person
// Klasa reprezentująca osobę
public class Person {
    String name;
    int age;

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

    // Getter dla wieku
    public int getAge() {
        return age;
    }

    // Getter dla imienia
    public String getName() {
        return name;
    }
}
Użycie interfejsu Predicate<T> do filtrowania osób
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

public class PredicateExample {
    public static void main(String[] args) {
        List<Person> people = new ArrayList<>();
        people.add(new Person("Jan", 18));
        people.add(new Person("Anna", 16));
        people.add(new Person("Adam", 22));

        // Predykat sprawdzający, czy osoba jest pełnoletnia
        Predicate<Person> isAdult = person -> person.getAge() >= 18;

        // Filtracja listy osób używając predykatu
        List<Person> adults = people.stream()
                .filter(isAdult)
                .collect(Collectors.toList());

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

W powyższym kodzie, Predicate<Person> isAdult definiuje predykat, który przyjmuje obiekt typu Person i zwraca true jeśli osoba jest pełnoletnia (ma 18 lat lub więcej). Następnie, używamy tego predykatu do filtrowania listy osób, pozostawiając tylko te, które spełniają kryterium bycia pełnoletnim.

Podsumowanie

Predykaty w Javie są potężnym narzędziem umożliwiającym tworzenie skondensowanych i czytelnych warunków w operacjach takich jak filtracja kolekcji. Użycie interfejsu Predicate<T> wspiera podejście funkcyjne do programowania, pozwalając na łatwe tworzenie reużywalnych komponentów logiki biznesowej. Dzięki temu kod staje się bardziej modularny, testowalny i łatwiejszy w utrzymaniu.

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