Sobes.tech
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.