Sobes.tech
Junior — Middle

Môžete vysvetliť, čo znamená pojem 'neterminálna operácia' pri práci s dátovými tokmi v API Stream?

sobes.tech AI

Odpoveď od AI

V API Stream Java operácie sa delia na terminálne a neterminálne (medzistupňové).

Neterminálna operácia je taká, ktorá vracia nový tok (Stream) a nespúšťa spracovanie dát okamžite. Slúži na vytvorenie reťazca transformácií, napríklad filtrovanie, mapovanie, zoradenie.

Príklady neterminálnych operácií:

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

Tieto operácie sú lenivé: nevykonávajú sa, kým nie je zavolaná terminálna operácia, napríklad, forEach(), collect(), count().

Príklad:

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

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

Týmto spôsobom umožňujú neterminálne operácie vytvárať reťazce transformácií, zatiaľ čo terminálna spúšťa vykonávanie.