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.