Strumienie w Java

Strumienie w Java to mechanizm wprowadzony w Java 8, który pozwala na przetwarzanie sekwencji elementów (np. kolekcji) w sposób deklaratywny, co oznacza, że możemy określić co chcemy zrobić, zamiast jak to zrobić. Umożliwiają one bardziej czytelny i zwięzły kod, zwłaszcza podczas wykonywania operacji takich jak filtrowanie, sortowanie, mapowanie czy agregacja.

Przykład użycia strumieni w Java

W tym przykładzie przedstawimy wykorzystanie strumieni do przetwarzania listy osób i wyfiltrowanie tych, które mają powyżej 18 lat, a następnie posortowanie ich po nazwisku.

Zacznijmy od klasy Person, która będzie reprezentować osobę w naszym przykładzie:

public class Person {
    String firstName;
    String lastName;
    int age;

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

    // Gettery
    public String getFirstName() { return firstName; }
    public String getLastName() { return lastName; }
    public int getAge() { return age; }

    // Metoda toString()
    @Override
    public String toString() {
        return firstName + " " + lastName + " (" + age + ")";
    }
}

Następnie, utworzymy klasę StreamExample, która zademonstruje użycie strumieni:

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

public class StreamExample {
    public static void main(String[] args) {
        // Lista osób
        List<Person> people = Arrays.asList(
            new Person("Jan", "Kowalski", 20),
            new Person("Anna", "Nowak", 17),
            new Person("Karol", "Wiśniewski", 22),
            new Person("Ewa", "Zając", 15)
        );

        // Filtrowanie osób pełnoletnich i sortowanie po nazwisku
        List<Person> adults = people.stream()
             // Filtrowanie osób pełnoletnich
            .filter(p -> p.getAge() >= 18) 
            .sorted((p1, p2) -> 
             // Sortowanie po nazwisku
             p1.getLastName().compareTo(p2.getLastName())) 
             // Zbieranie wyników do listy
             .collect(Collectors.toList()); 

        // Wyświetlanie przefiltrowanej listy osób
        adults.forEach(System.out::println);
    }
}

Podsumowanie

W tej lekcji omówiliśmy, jak wykorzystać strumienie w Java do efektywnego przetwarzania kolekcji danych. Przykład pokazuje, jak łatwo można przefiltrować i posortować listę obiektów, używając strumieni. Strumienie znacznie upraszczają kod, czyniąc go bardziej czytelnym i łatwiejszym w utrzymaniu, co jest szczególnie przydatne w przypadku operacji na dużych zbiorach danych. Strumienie Java reprezentują potężne narzędzie, które pozwala na eleganckie rozwiązanie wielu problemów programistycznych.

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