Sobes.tech
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.