Junior — Middle
Կարող է տվյալների հոսքը կատարվի առանց վերջնական գործողությունը սկսելու՞
sobes.tech AI
Պատասխան AI-ից
Java-ում տվյալների հոսքը (stream) չի կատարվի առանց վերջնական գործողության (terminal operation) կանչելու: Java-ների հոսքերը թափանցիկ են՝ միջանկյալ գործողությունները (օրինակ, map, filter) միայն նկարագրում են փոխակերպումները, բայց անմիջապես չեն կատարվում:
Օրինակ՝
Stream<Integer> stream = Stream.of(1, 2, 3, 4)
.filter(x -> x % 2 == 0)
.map(x -> x * x);
// Այստեղ ոչինչ չի տեղի ունենում, քանի որ չկա վերջնական գործողություն
List<Integer> result = stream.collect(Collectors.toList()); // Վերջնական գործողություն, սկսում է հաշվարկները
Եթե չկանչեք վերջնական գործողություն (collect, forEach, reduce և այլն), հոսքը չի մշակվի և հաշվարկները չեն կատարվի։