ऐसा लगता है कि मुझे यह समझने में परेशानी हो रही है कि जावा कैसे एक स्ट्रीम पाइपलाइन में धारा संचालन की रचना करता है।
निम्नलिखित कोड निष्पादित करते समय
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
यह प्रतीत होता है कि निरर्थक फ़िल्टर ऑपरेशन कैसे निर्मित धारा पाइपलाइन के व्यवहार को बदलता है?