জাভা 8 প্রবাহের সাথে বাছাই করা ফণার নীচে কীভাবে কাজ করবে?


10

আমি যখন কল করি তখন কি Stream.sort(..)নতুন উপাদানের তৈরি অ্যারে তৈরি হয় এবং স্রোত নতুন তৈরি হওয়া সাজানো অ্যারের উপরে পুনরাবৃত্তি করে?

অন্য কথায়, জাভা 8 স্ট্রিম sortহুডের নীচে কী করে?


এই প্রশ্নটি নিয়ে আমি কেন ডাউন ভোট পাব ???
অবহিত

2
আপনার প্রশ্নটি যুক্তিসঙ্গত ও যুক্তিসঙ্গতদের অযোগ্য ving আমনের উত্তরে আপনার মন্তব্যগুলি , তবে ... উঃ: |
আন্দ্রেস এফ।

@AndresF। ডাউন মন্তব্যটি আমি মন্তব্য করার আগেই এসেছিল। আমি খুব মন খারাপ করার কারণগুলির মধ্যে এটি অন্যতম।
অবহিত

মন্তব্যগুলি কোনওভাবেই হ্রাস করার কোনও কারণ নয়। প্রশ্নটি তার নিজস্ব যোগ্যতার উপর দাঁড়িয়ে এবং এটি আমার মতে বৈধ। আমি এটি upvated।
আন্দ্রেস এফ।

উত্তর:


10

আপনি জাভা স্ট্যান্ডার্ড লাইব্রেরি কোড (এবং কিছু অন্যান্য গ্রন্থাগার) এর মাধ্যমে অনুসন্ধানের জন্য গ্রেপকোড.কম ব্যবহার করতে পারেন । দুর্ভাগ্যক্রমে, স্ট্রিম বাস্তবায়ন কোডটি বরং বিমূর্ত। একটি ভাল প্রারম্ভিক বিন্দু হ'ল অভ্যন্তরীণ java.util.stream.SortedOpsশ্রেণি যা একটি স্ট্রিমকে বাছাই করা প্রবাহে রূপান্তর করে।

বর্তমান বাস্তবায়ন (আদর্শ গ্রন্থাগার পাত্রে স্ট্রিম জন্য ব্যবহৃত) এটি একটি নো-অপ যদি প্রবাহ ইতিমধ্যে অনুসারে বাছাই করা হয় তোলে, যদি স্ট্রীমের আকার পরিচিত হয় (একটি অ্যারের ব্যবহার SizedRefSortingSink), অথবা একটি ArrayList মধ্যে সব উপাদান accumulates আকার হলে অজানা ( RefSortingSink)।

অবশ্যই, এই জাতীয় বাস্তবায়ন সম্পর্কিত বিবরণ যে কোনও রিলিজের সাথে পরিবর্তিত হতে পারে তবে মৌলিক বিবেচনাগুলি সর্বজনীন: একটি স্ট্রিম বাছাই করা অবশ্যই একটি আগ্রহী / অবরুদ্ধ অপারেশন, এবং অসীম প্রবাহকে বাছাই করা অর্থপূর্ণ নয়। এর অর্থ আপনি যদি স্ট্রিম ব্যবহার করেন তবে স্ট্রিমটি বাছাই করা কার্যকর নয় কারণ সেগুলি অলস হতে পারে তবে আপনি এখনও সুবিধাজনক স্ট্রিম সিনট্যাক্স পান।

অন্যান্য স্ট্রিমগুলিকে তাদের নিজস্ব বাস্তবায়ন সরবরাহ Stream.sorted()করতে হবে যা সম্ভবত একই রকম হবে।


1
@ ইনফর্মডএ আমি পরামর্শ দিতে চাই না যে ল্যাম্বডাস বা স্ট্রিমগুলি "হুডের নীচে বুলিশিট" হবে। এগুলি উভয় অবিশ্বাস্যভাবে সুবিধাজনক, যদিও স্ট্রিম সম্পর্কিত বিবরণ অন্যান্য জাভা ধারণার তুলনায় অস্বাভাবিক জটিল complex এই সরঞ্জামগুলি অকেজো বা ক্ষতিকারক হিসাবে আপনি যদি আপনার পূর্ব-ধারণার ধারণাকে আঁকড়ে রাখতে চান তবে আপনি অহেতুক নিজেকে সীমাবদ্ধ করছেন।
আমন

1
@ আমন - সম্মত, প্লাস স্ট্রিমগুলি কার্যত প্রয়োগ পরিবর্তন না করেই হুডের নীচে মাল্টিকোর সমান্তরাল বাস্তবায়ন ঘূর্ণায়নের সম্ভাবনা সরবরাহ করে। এবং স্ট্রিম বাস্তবায়নের জটিলতা হুবহু আসে। এটি সহজ সুবিধার চেয়েও বেশি উপায়, এটি সঠিক বিমূর্ততা। ও.পি. - আমি পরামর্শ দিচ্ছি আপনি মাস্টারিং ল্যাম্বডাস পড়েন ... আপনি যদি বুঝতে চান যে ল্যাম্বডাস এবং স্ট্রিমগুলি এত বেশি যে কেবল সুবিধাজনক বৈশিষ্ট্যগুলি রয়েছে।
ইউরি স্টিনস্ক্রেইবার

3
@ ইনফর্মডএ: ল্যাম্বডাস প্রায় ৮০ বছর ধরে রয়েছে এবং প্রতিটি বর্তমান মূলধারার প্রোগ্রামিং ভাষায় প্রায় বিদ্যমান। স্ট্রিমগুলি প্রায় 40 বছর ধরে রয়েছে এবং একইভাবে প্রতিটি মূলধারার সংগ্রহের কাঠামোতেও প্রায় বিদ্যমান। তাদের বিভিন্ন জিনিস বলা যেতে পারে (পুনরাবৃত্তকারী, অলস তালিকাগুলি, গণক, গণনাযোগ্য) তবে তারা সেখানে রয়েছে। ল্যাম্বডাস এবং অলস তালিকাগুলি সেগুলির মধ্যে কিছু প্রাচীন এবং স্থিতিশীল বিমূর্ততা রয়েছে এবং এগুলি নিক্ষিপ্ত প্রতিটি নতুন ফ্যাড, হাইপ, দৃষ্টান্ত, চলন, পদ্ধতি, প্রযুক্তি, ভাষা, ওএস, কাঠামো, লাইব্রেরি থেকে বেঁচে গেছে। এটি তাদের এক নজর রাখার মতো করে তোলে।
Jörg W Mittag

2
প্রোগ্রামিং ল্যাঙ্গুয়েজ, ইনফরমডা জাভা, জেভিএম-তে চলমান বাইটকোডের একটি বুলশিট বিমূর্ততা। নিজেই জেভিএম হ'ল সি (বা সি ++, আমি ভুলে গেছি) তে লিখিত একটি বুলশিট বিমূর্ততা। সি এবং সি ++ হ'ল সমাবেশ ভাষার উপর বুলিশট বিমূর্ততা। এমনকি সমাবেশ নিজেই ভাষা মাইক্রো-উপর একটি বাজে কথা বিমূর্ততা, যা হয় এছাড়াও সার্কিট (ঠিক আছে, আমি মাঝে কয়েক ধাপ অনুপস্থিত থাকতে পারে) উপর একটি বাজে কথা বিমূর্ততা। আপনি বলতে পারেন যে সফ্টওয়্যারে দরকারী সমস্ত কিছু অন্য কোনও কিছুর চেয়ে "বুলশিট বিমূর্তি"।
আন্দ্রেস এফ।

3
@ ইনফোর্ফডএ আমার সৎ পরামর্শটি হ'ল আপনি এমন একটি ভাষা শেখার চেষ্টা করুন যা জাভার চেয়ে কার্যকরী প্রোগ্রামিংয়ের দিকে বেশি আগ্রহী। এমনকি যদি আপনি এটি আপনার দিনের কাজের জন্য কখনও ব্যবহার না করেন তবে আপনি প্রোগ্রামিং ভাষা এবং তাদের নকশা পছন্দগুলি যা জাভাতে আপনাকে সহায়তা করবে তার একটি বোধগম্যতা অর্জন করবে :)
অ্যান্ড্রেস এফ।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.