উত্তর:
তাদের স্বাক্ষরগুলি কীভাবে আলাদা তা লক্ষ্য করুন:
generate
এটি গ্রহণ করে IntSupplier
, যার অর্থ আপনি কিছু না দিয়ে কালি তৈরি করার কথা। উদাহরণ ব্যবহারের মধ্যে একই সংখ্যার একটি ধ্রুবক স্ট্রিম তৈরি করা এবং এলোমেলো পূর্ণসংখ্যার একটি স্ট্রিম তৈরি করা অন্তর্ভুক্ত। প্রবাহের প্রতিটি উপাদান কীভাবে পূর্ববর্তী উপাদানের উপর নির্ভর করে না তা লক্ষ করুন।
iterate
একটি seed
এবং একটি নেয় IntUnaryOperator
, যার অর্থ আপনি আগের উপাদানটির উপর ভিত্তি করে প্রতিটি উপাদান তৈরি করার কথা । এটি একটি inductively সংজ্ঞায়িত ক্রম তৈরির জন্য দরকারী, উদাহরণস্বরূপ। এই ক্ষেত্রে, প্রতিটি উপাদান পূর্ববর্তীটির উপর নির্ভর করে বলে মনে করা হচ্ছে ।
IntStream.iterate
একটি ফেরৎ আদেশIntStream
অন্যদিকে IntStream.generate
আয় একটি unorderedIntStream
যা সমান্তরাল প্রবাহ পাইপলাইনগুলি দ্রুত গাড়ী চালানোর আপ সাহায্য করতে পারেন।
IntStream.generate
জাভাডক-এ উল্লিখিত হিসাবে এলোমেলো বা ধ্রুবক মান উত্পন্ন করতে পছন্দ করা হয়, আমি প্রত্যাশিত স্ট্রিমের বৈশিষ্ট্যগুলির জন্য সম্ভবত অনুমান করি।
অর্ডার বাদেও ব্যবহারটি কিছুটা আলাদা। আসুন পদ্ধতি স্বাক্ষরগুলি দেখুন:
iterate(int seed, IntUnaryOperator f)
generate(IntSupplier s)
Iterate স্পষ্টভাবে প্যারামিটার এবং unary অপারেটর হিসাবে প্রারম্ভিক মান দেওয়া হয়েছে যা পূর্বের থেকে পরবর্তী মান উত্পন্ন করতে ব্যবহৃত হয়। এখানে অপারেটর সহজেই অভ্যন্তরীণ অবস্থা ছাড়াই অপরিবর্তনীয় হতে পারে এবং কোনও সমস্যা ছাড়াই সমান্তরালে একাধিক জায়গায় পুনরায় ব্যবহার করা যেতে পারে।
সরবরাহকারী ব্যবহার উত্পন্ন। এগুলি হয় ধ্রুব বা এলোমেলো সংখ্যা সরবরাহ করতে পারে বা সিরিজের (1, 2, 3, ...) সরবরাহ করার জন্য অভ্যন্তরীণ অবস্থা থাকা দরকার।