Spis treści
- Metody w Stream
- Map | Java poradnik
- Filter
- Collect
Wróćmy do przykładu z poprzedniego wpisu i dodajmy trochę streamów w ramach Java poradnik.

Map | Java poradnik
Streamy w Java umożliwiają np. metodę map(), która nam mapuje np. listę Car na listę samych vin albo na jakiekolwiek inne obiektu.

Programowanie z użyciem Stream jest trochę trudniejsze ze względu na lambdy w związku z tym na początek można to samo co robią streamy robić za pomocą zwykłych pętli. Np, żeby zrobić to samo co ten stream na górze wystarczy stworzyć nowa List<String>, petlą for się przeiterować przez starą listę i dodać do nowej listy wszystkie viny ze starej. Jak widać stream robi to w znacznie elegantszy sposób.
Trudnością w stream może być lambda użyta powyżej w metodzie : map( (car) -> car.getVin() ).
Ten kawałek kodu mówi, że mapujemy obiekt car ze streamu, na obiekt car.getVin() czyli vin typu String. I wykonuje to dla całego streamu czy listy.
Filter
Aby wykorzystując stream przefiltrować listę i dostać nową listę bez elementów, które nie spełniają warunków, wystarczy zrobić tak :

Znowu w metodzie filter jest lambda. Kod powyżej w filter mówi, aby dla każdego elementu streamu czy listy, zachować tylko elementy, które spełniają warunek : car.getVin.length() > 4.
czyli długości vin-u musi być większa od 4. Nasze predykaty czyli warunki do filtrowania, możemy definiować dowolnie.
Collect
Ostatnią metodą w Stream jest .collect, która mówi, do czego mamy przypisać elementy z streamu. W naszych przykładach zawsze wybieramy listę, ale może to być set, map itp.
Można też nie przypisywać streamu do żadnej kolekcji żeby np. wykorzystać go w innej metodzie.
W następnym wpisie przechodzimy już do dziedziczenie w Java.
pozdrawiamy,
Zespół Great
Pomocne linki:
Calculations