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.