Junior — Middle
Ar galite paaiškinti, ką reiškia terminas 'ne pabaigos operacija' dirbant su duomenų srautais Stream API?
sobes.tech AI
Atsakymas iš AI
Java Stream API operacijos skirstomos į terminalines ir ne terminalines (tarpines).
Ne terminalinė operacija yra tokia, kuri grąžina naują srautą (Stream) ir nedelsdama pradeda duomenų apdorojimą. Ji naudojama transformacijų grandinės kūrimui, pvz., filtravimui, žemėlapių sudarymui, rūšiavimui.
Ne terminalinių operacijų pavyzdžiai:
- filter()
- map()
- sorted()
- distinct()
Šios operacijos yra tingios: jos nevykdomos, kol nėra iškviesta terminalinė operacija, pvz., forEach(), collect(), count().
Pavyzdys:
List<String> list = Arrays.asList("a", "bb", "ccc");
list.stream()
.filter(s -> s.length() > 1) // ne terminalinė
.map(String::toUpperCase) // ne terminalinė
.forEach(System.out::println); // terminalinė
Taip, ne terminalinės operacijos leidžia kurti transformacijų grandinę, o terminalinė pradeda vykdymą.