আমি যখন কল করি তখন কি Stream.sort(..)
নতুন উপাদানের তৈরি অ্যারে তৈরি হয় এবং স্রোত নতুন তৈরি হওয়া সাজানো অ্যারের উপরে পুনরাবৃত্তি করে?
অন্য কথায়, জাভা 8 স্ট্রিম sort
হুডের নীচে কী করে?
আমি যখন কল করি তখন কি Stream.sort(..)
নতুন উপাদানের তৈরি অ্যারে তৈরি হয় এবং স্রোত নতুন তৈরি হওয়া সাজানো অ্যারের উপরে পুনরাবৃত্তি করে?
অন্য কথায়, জাভা 8 স্ট্রিম sort
হুডের নীচে কী করে?
উত্তর:
আপনি জাভা স্ট্যান্ডার্ড লাইব্রেরি কোড (এবং কিছু অন্যান্য গ্রন্থাগার) এর মাধ্যমে অনুসন্ধানের জন্য গ্রেপকোড.কম ব্যবহার করতে পারেন । দুর্ভাগ্যক্রমে, স্ট্রিম বাস্তবায়ন কোডটি বরং বিমূর্ত। একটি ভাল প্রারম্ভিক বিন্দু হ'ল অভ্যন্তরীণ java.util.stream.SortedOps
শ্রেণি যা একটি স্ট্রিমকে বাছাই করা প্রবাহে রূপান্তর করে।
বর্তমান বাস্তবায়ন (আদর্শ গ্রন্থাগার পাত্রে স্ট্রিম জন্য ব্যবহৃত) এটি একটি নো-অপ যদি প্রবাহ ইতিমধ্যে অনুসারে বাছাই করা হয় তোলে, যদি স্ট্রীমের আকার পরিচিত হয় (একটি অ্যারের ব্যবহার SizedRefSortingSink
), অথবা একটি ArrayList মধ্যে সব উপাদান accumulates আকার হলে অজানা ( RefSortingSink
)।
অবশ্যই, এই জাতীয় বাস্তবায়ন সম্পর্কিত বিবরণ যে কোনও রিলিজের সাথে পরিবর্তিত হতে পারে তবে মৌলিক বিবেচনাগুলি সর্বজনীন: একটি স্ট্রিম বাছাই করা অবশ্যই একটি আগ্রহী / অবরুদ্ধ অপারেশন, এবং অসীম প্রবাহকে বাছাই করা অর্থপূর্ণ নয়। এর অর্থ আপনি যদি স্ট্রিম ব্যবহার করেন তবে স্ট্রিমটি বাছাই করা কার্যকর নয় কারণ সেগুলি অলস হতে পারে তবে আপনি এখনও সুবিধাজনক স্ট্রিম সিনট্যাক্স পান।
অন্যান্য স্ট্রিমগুলিকে তাদের নিজস্ব বাস্তবায়ন সরবরাহ Stream.sorted()
করতে হবে যা সম্ভবত একই রকম হবে।