Junior — Middle
Millal toimub Stream API kasutamisel Streami initsialiseerimine?
sobes.tech AI
Vastus AI-lt
Java-s Streami initsialiseerub just siis, kui kutsutakse välja terminaloperaator. Selleks ajaks on Streami operatsioonid laiskad (lazy) ega ole veel täidetud.
See tähendab, et kui loote Streami ja rakendate vaheoperatsioone (näiteks filter(), map()), siis need ainult moodustavad töötlemisahela, kuid ei käivita arvutusi.
Näide:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Siin ei toimu midagi
List<String> result = stream.collect(Collectors.toList()); // Terminaloperaator
// Siin toimub elementide töötlemine
Seega, Stream initsialiseerub ja hakkab andmeid töötlema ainult siis, kui kutsutakse välja terminaloperaator, näiteks collect(), forEach(), reduce() ja teised.