মনে হচ্ছে জাভা কীভাবে স্ট্রিম পাইপলাইনে স্ট্রিম অপারেশনগুলি রচনা করে তা বুঝতে সমস্যা হচ্ছে।
নিম্নলিখিত কোডটি কার্যকর করার সময়
public
static void main(String[] args) {
StringBuilder sb = new StringBuilder();
var count = Stream.of(new String[]{"1", "2", "3", "4"})
.map(sb::append)
.count();
System.out.println(count);
System.out.println(sb.toString());
}
কনসোলটি কেবল প্রিন্ট করে 4
। StringBuilder
সে আপত্তি এখনও মূল্য আছে ""
।
আমি যখন ফিল্টার অপারেশন যুক্ত করি: filter(s -> true)
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
var count = Stream.of(new String[]{"1", "2", "3", "4"})
.filter(s -> true)
.map(sb::append)
.count();
System.out.println(count);
System.out.println(sb.toString());
}
আউটপুট এতে পরিবর্তিত হয়:
4
1234
এই আপাতদৃষ্টিতে অপ্রয়োজনীয় ফিল্টার অপারেশনটি কীভাবে রচিত স্ট্রিম পাইপলাইনটির আচরণ পরিবর্তন করে?