Sobes.tech
Junior — Middle

Можете ли објаснити шта значи термин 'нетерминална операција' при раду са токовима података у API Stream?

sobes.tech АИ

Одговор од АИ

U API Stream Java operacije se dele na terminalne i neterminalne (međuzavisne).

Neterminalna operacija je ona koja vraća novi tok (Stream) i ne pokreće obradu podataka odmah. Služi za građenje lanca transformacija, na primer, filtriranje, mapiranje, sortiranje.

Primeri neterminalnih operacija:

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

Ove operacije su lenjive: ne izvršavaju se dok se ne pozove terminalna operacija, na primer, forEach(), collect(), count().

Primer:

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

list.stream()
    .filter(s -> s.length() > 1) // neterminalno
    .map(String::toUpperCase)    // neterminalno
    .forEach(System.out::println); // terminalno

Na ovaj način, neterminalne operacije omogućavaju građenje lanca transformacija, dok terminalna pokreće izvršenje.