Junior — Middle
Ի՞նչ վարքագիծ է արտահայտվում Stream API-ում, եթե բացակայում է վերջնական օպերացիայի կանչը։
sobes.tech AI
Պատասխան AI-ից
Java Stream API- ում գործողությունները բաժանվում են միջնորդական և վերջնական։ Միջնորդական գործողությունները (օրինակ, filter, map) հապաղում են և չեն կատարվում մինչև որ չկոչվի վերջնական գործողությունը (օրինակ, collect, forEach)։
Եթե վերջնական գործողությունը չի կոչվում, ապա հոսքը չի մշակվի և ոչ մի հաշվարկ չի կատարվի։ Սա նշանակում է, որ միջնորդական գործողությունների շղթան պարզապես կստեղծի հոսքի նկարագրությունը, բայց չի իրականացնում այն։
Օրինակ՝
Stream.of(1, 2, 3, 4)
.filter(n -> n % 2 == 0)
.map(n -> n * 2);
// Ոչ մի տարր չի մշակվի, քանի որ չկա վերջնական գործողություն
Համագործարկելու համար անհրաժեշտ է կանչել վերջնական գործողություն՝
List<Integer> result = Stream.of(1, 2, 3, 4)
.filter(n -> n % 2 == 0)
.map(n -> n * 2)
.collect(Collectors.toList());
Բացակայում է վերջնական գործողությունը, հոսքը չի գործարկվի։