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);