Junior — Middle
Երբ է տեղի ունենում Stream-ի ինիցիալիզացիան Stream API-ի օգտագործման ժամանակ?
sobes.tech AI
Պատասխան AI-ից
Java-յի մեջ Stream-ի ինիցիալիզացիան տեղի է ունենում այն պահին, երբ կանչվում է տերմինալ օպերացիա։ Այդ ժամանակից առաջ, Stream-ի վրա գործողությունները մնում են սպասողական (lazy) և չեն կատարվում։
Արդյունքում, երբ դուք ստեղծում եք Stream և կիրառում միջանկյալ գործողություններ (օրինակ, filter(), map()), դրանք միայն ձևավորում են մշակման շղթա, բայց չեն սկսում հաշվարկները։
Օրինակ՝
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Այստեղ ոչինչ չի կատարվում
List<String> result = stream.collect(Collectors.toList()); // Տերմինալ օպերացիա
// Այստեղ սկսվում է տարրերի մշակումը
Հետևաբար, Stream-ը ինիցիալիզացվում և սկսում է տվյալների մշակումը միայն այն ժամանակ, երբ կանչվում է տերմինալ օպերացիա՝ ինչպիսիք են collect(), forEach(), reduce() և այլն։