Junior — Middle
Stream API колдонуп жатканда Stream башталуу качан болот?
sobes.tech AI
AIден жооп
Java-da 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() жана башка, башталат жана маалыматтарды иштетүү башталат.