Sobes.tech
Junior — Middle

Můžete vysvětlit, co znamená pojem 'neterminální operace' při práci s datovými proudy v API Stream?

sobes.tech AI

Odpověď od AI

V API Stream v jazyce Java jsou operace rozděleny na terminální a neterminální (meziprodukty).

Neterminální operace je taková, která vrací nový proud (Stream) a neprovádí zpracování dat ihned. Slouží k vytvoření řetězce transformací, například filtrování, mapování, třídění.

Příklady neterminálních operací:

  • filter()
  • map()
  • sorted()
  • distinct()

Tyto operace jsou líné: nevykonávají se, dokud není zavolána terminální operace, například forEach(), collect(), count().

Příklad:

List<String> list = Arrays.asList("a", "bb", "ccc");

list.stream()
    .filter(s -> s.length() > 1) // neterminální
    .map(String::toUpperCase)    // neterminální
    .forEach(System.out::println); // terminální

Tímto způsobem neterminální operace umožňují vytvářet řetězce transformací, zatímco terminální spouští vykonávání.