java - जावा इंट्रीस्ट्रीम iterate बनाम उत्पन्न जब उपयोग करने के लिए क्या?




java-8 java-stream (2)

  1. IntStream.iterate एक ऑर्डर देता है दूसरी तरफ IntStream.generate एक IntStream.generate देता है जो समानांतर स्ट्रीम पाइपलाइनों को गति देने में मदद कर सकता है।

  2. IntStream.generate को IntStream.generate में निर्दिष्ट यादृच्छिक या स्थिर मान उत्पन्न करने के लिए पसंद किया जाता है, मुझे लगता है कि स्ट्रीम की विशेषताओं के लिए सबसे अधिक संभावना होगी।

ऐसा लगता है कि IntStream.iterate , IntStream.iterate लिए केवल एक हल्का ऑर्डर किया गया संस्करण है। क्या यह सच है? यदि नहीं, तो मूल अंतर क्या है?


आदेश के अलावा, उपयोग भी थोड़ा अलग है। आइए विधि हस्ताक्षर पर नजर डालें:

  • iterate(int seed, IntUnaryOperator f)
  • generate(IntSupplier s)

Iterate ने स्पष्ट रूप से आरंभिक मान को पैरामीटर और एकात्मक ऑपरेटर के रूप में दिया है जिसका उपयोग पिछले से अगला मान उत्पन्न करने के लिए किया जाता है। यहां ऑपरेटर आंतरिक स्थिति के बिना आसानी से अपरिवर्तनीय हो सकता है और किसी भी मुद्दे के बिना समानांतर में कई स्थानों पर पुन: उपयोग किया जा सकता है।

जनरेट सप्लायर का उपयोग करता है। वे या तो निरंतर या यादृच्छिक संख्या प्रदान कर सकते हैं या श्रृंखला (1, 2, 3, ...) प्रदान करने के लिए आंतरिक स्थिति की आवश्यकता होती है।





java-stream