Strumienie (streams) w Javie są potężnym narzędziem, które umożliwia efektywne przetwarzanie kolekcji danych. W tej lekcji pokażemy, jak łatwo można przekształcić obiekt typu List
w strumień, aby skorzystać z funkcjonalności strumieni, takich jak filtrowanie, mapowanie czy agregacja danych.
Przykład użycia strumienia na liście w Javie
Zacznijmy od przygotowania prostego przykładu, w którym przekształcimy List
zawierającą elementy typu String
w strumień, a następnie wykorzystamy strumień do przefiltrowania elementów spełniających określone kryterium. W przykładzie zostanie użyty filtr, który zezwala na przepuszczenie tylko tych ciągów znaków, które są dłuższe niż trzy znaki.
Zobaczmy, jak to zrobić krok po kroku:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// Lista nazw
List<String> names = Arrays.asList("Anna", "Bob", "Alexandra", "Chris");
// Tworzenie strumienia z listy
List<String> longNames = names.stream()
.filter(name -> name.length() > 3) // Filtruj tylko nazwy dłuższe niż 3 znaki
.collect(Collectors.toList()); // Zbieranie wyników do nowej listy
// Wyświetlanie przefiltrowanych nazw
longNames.forEach(System.out::println); // Drukuje Alexandra i Chris
}
}
W powyższym kodzie:
- Tworzenie listy: Najpierw tworzymy listę
names
zawierającą różne nazwy. - Strumień: Następnie przekształcamy listę w strumień wywołując metodę
stream()
. - Filtracja: Przy pomocy metody
filter
, określamy kryteria selekcji danych – w tym przypadku interesują nas tylko te nazwy, które mają więcej niż trzy znaki. - Kolekcja wyników: Za pomocą
collect(Collectors.toList())
zbieramy przefiltrowane elementy z powrotem do listy. - Wyświetlanie wyników: Ostatecznie wyniki są wyświetlane za pomocą metody
forEach
w połączeniu z referencją do metodySystem.out::println
.
Podsumowanie
Strumienie w Javie oferują łatwy i efektywny sposób na przetwarzanie kolekcji. Przekształcanie listy w strumień pozwala nam korzystać z potężnych operacji przetwarzania danych, które mogą znacznie uprościć nasz kod, szczególnie przy dużych zbiorach danych. Jak widzieliśmy w przykładzie, przekształcenie listy w strumień i zastosowanie na nim metody filtrowania jest bardzo intuicyjne i czytelne.
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.