Junior
Ի՞նչ է Java-ի Stream API-ի հիմնական գաղափարը։
sobes.tech AI
Պատասխան AI-ից
Stream API- ի հիմնական գաղափարը այն է, որ տրամադրել դեկլարատիվ եղանակ տվյալների հավաքածուների մշակման համար: Փոխարենը հրամայական կրկնման մոտեցման, որը ունի հստակ վերահսկողություն ցիկլերի և վիճակների վրա, հոսքերը (streams) թույլ են տալիս նկարագրել ինչ պետք է անել տվյալների հետ (ֆիլտրում, փոխակերպում, հավաքում), թողնելով ինչպես դա անել API-ում:
Հիմնական հասկացությունները՝
- Անփոփոխություն: Հոսքերը չեն փոխում սկզբնական տվյալների աղբյուրը: Հոսքերի գործողությունները ստեղծում են նոր հոսքեր կամ արդյունքներ:
- Կամայական գնահատում: Շատ հոսքի գործողություններ, ինչպիսիք են
filter()ևmap(), միջանկյալ գործողություններ են: Դրանք չեն կատարվում մինչև վերջնական գործողություն, օրինակ,collect()կամforEach(), կանչելը: Սա թույլ է տալիս օպտիմալացնել կատարմանը: - Ճկույթ (Pipeline): Հոսքի գործողությունները կարող են միավորվել ճկույթի մեջ: Ամեն մի տարր անցնում է ճկույով հերթով կամ զուգահեռ:
- Պարալել մշակում: Հոսքերը նախագծված են հեշտացնելու տվյալների հեշտ զուգահեռ մշակումը, հաճախ նվազագույն կոդային փոփոխություններով (
parallelStream()).
Առավելություններ՝
- Ավելի ընթերցվող և արտահայտիչ կոդ բարդ գործողությունների համար հավաքածուներով:
- Հեշտ զուգահեռացում:
- Կոդի boilerplate- ի վերացում, որը կապված է կրկնությունների հետ:
// Օրինակ՝ տողերի ցանկի ֆիլտրում և փոխակերպում
List<String> անուններ = Arrays.asList("Alice", "Bob", "Charlie", "David");
List<Integer> երկարություններ = անուններ.stream()
.filter(անուն -> անուն.startsWith("A")) // Միջանկյալ գործողություն
.map(String::length) // Միջանկյալ գործողություն
.collect(Collectors.toList()); // Վերջնական գործողություն
// երկարություններ-ը կպահպանի [5]