Junior
K čemu slouží streamy v Java?
sobes.tech AI
Odpověď od AI
Pro deklarativní zpracování datových kolekcí. Umožňují provádět sekvenční nebo paralelní operace nad prvky kolekcí, jako je filtrování, mapování (transformace), agregace a sběr výsledků, což činí kód čitelnějším a flexibilnější.
Hlavní výhody:
- Deklarativní: Místo popisu "jak" provádět operaci (smyčky, iterátory), popisujeme "co" je třeba udělat s daty.
- Paralelismus: Snadno přepínat mezi sekvenčním a paralelním zpracováním, což je užitečné pro systémy s více jádry.
- Línost: Meziprocesy se provádějí pouze tehdy, když jsou potřeba, při přítomnosti terminální operace.
- Kompaktnost: Často umožňuje zkrátit množství kódu ve srovnání s tradičními smyčkami.
Příklad sekvenčního zpracování:
// Získání seznamu jmen uživatelů starších 18 let a jejich převod na velká písmena
List<User> users = ... // Vaše kolekce uživatelů
List<String> adultUserNames = users.stream()
.filter(user -> user.getAge() >= 18) // Filtrace podle věku
.map(user -> user.getName().toUpperCase()) // Převod jména na velká písmena
.collect(Collectors.toList()); // Sběr výsledků do seznamu
Příklad paralelního zpracování:
// Paralelní součet velkých čísel v seznamu
List<Long> numbers = ... // Vaše kolekce čísel
long sum = numbers.parallelStream()
.reduce(0L, Long::sum); // Paralelní součet
Tímto způsobem jsou streamy v Javě používány pro funkcionální a efektivní přístup ke zpracování dat.