Middle
Jaký je účel používání streamů v nové verzi Javy?
sobes.tech AI
Odpověď od AI
Zjednodušení práce s datovými kolekcemi.
Hlavní cíle:
- Funkčnost: Umožňují použití lambda výrazů a dalších funkčních rozhraní pro deklarativní zpracování dat.
- Paralelismus: Usnadňují paralelní provádění operací nad kolekcemi bez explicitní správy vláken.
- Neměnnost: Streamy nemění původní kolekci. Operace na streamu vytvářejí nové streamy nebo konečné výsledky.
- Výkon: Lazy evaluation (líné vyhodnocování) umožňuje provádět operace pouze tehdy, když jsou potřeba.
- Čitelnost: Kód je stručnější a výstižnější ve srovnání s tradičními smyčkami.
Příklad použití:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange", "grape");
// Filtrování a transformace pomocí streamů
List<String> filteredFruits = fruits.stream()
.filter(s -> s.startsWith("a")) // Pouze ty začínající na "a"
.map(String::toUpperCase) // Převod na velká písmena
.collect(Collectors.toList()); // Sbírání do nové seznamu
System.out.println(filteredFruits); // Výstup: [APPLE]
}
}
Stručně řečeno, streamy činí kód modernějším, efektivnějším a čitelnějším při práci s datovými kolekcemi.