Sobes.tech
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); // տերմինալ

Այսպիսով, ոչ-տերմինալ գործողությունները թույլ են տալիս կառուցել փոխարկումների շղթա, իսկ տերմինալը սկսում է կատարմանը։