Junior — Middle
Կարող եք բացատրել, թե ինչ է նշանակում 'չզուգահեռ օպերացիա' տերմինը տվյալների հոսքերի հետ աշխատելիս API Stream-ում?
sobes.tech AI
Պատասխան AI-ից
Java Stream API- ում գործողությունները բաժանվում են տերմինալ և ոչ-տերմինալ (միջանկյալ) գործողությունների:
Ոչ-տերմինալ գործողությունը այն է, որը վերադարձնում է նոր հոսք (Stream) և անմիջապես չի սկսում տվյալների մշակումը: Այն ծառայում է փոխարկումների շղթա կառուցելու համար, օրինակ՝ ֆիլտրում, քարտեզագրում, դասավորություն:
Ոչ-տերմինալ գործողությունների օրինակներ՝
- filter()
- map()
- sorted()
- distinct()
Այս գործողությունները հապաղում են. դրանք չեն կատարվում մինչև տերմինալ գործողության՝ օրինակ՝ forEach(), collect(), count()՝ կանչելը:
Օրինակ՝
List<String> list = Arrays.asList("a", "bb", "ccc");
list.stream()
.filter(s -> s.length() > 1) // ոչ-տերմինալ
.map(String::toUpperCase) // ոչ-տերմինալ
.forEach(System.out::println); // տերմինալ
Այսպիսով, ոչ-տերմինալ գործողությունները թույլ են տալիս կառուցել փոխարկումների շղթա, իսկ տերմինալը սկսում է կատարմանը։