Sobes.tech
Junior — Middle

Կարո՞ղ է կրկնակի կիրառել տերմինալ մեթոդը մեկ հոսքի վրա Java-ի Stream API-ում:

sobes.tech AI

Պատասխան AI-ից

Ոչ, Java Stream API-ում տերմինալ մեթոդը կարելի է կիրառել միայն մեկ անգամ մեկ հոսքի վրա: Տերմինալ մեթոդի կանչից հետո հոսքը համարվում է փակ, և նույն հոսքի կրկնակի օգտագործումը կհանգեցնի IllegalStateException-ի:

Եթե անհրաժեշտ է կատարել մի քանի գործողություններ, պետք է ստեղծել նոր հոսք սկզբնական հավաքածուից կամ տվյալների աղբյուրից:

Օրինակ՝

List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream();
long count = stream.count(); // տերմինալ մեթոդ
// stream.forEach(System.out::println); // կհանգեցնի IllegalStateException- ի

// Ճիշտ է՝
list.stream().forEach(System.out::println);