উত্তর:
প্রথম বন্ধ: ক Listহয় ক Collection। এটা একটা বিশেষ হয় Collectionতবে।
এ Collectionহ'ল: আইটেমের সংকলন। আপনি স্টাফ যুক্ত করতে, স্টাফ সরিয়ে নিতে, স্টাফের উপর পুনরাবৃত্তি করতে এবং সেখানে কতটা স্টাফ রয়েছে তা জিজ্ঞাসা করতে পারেন।
একজন Listএটি একটি জিনিস সংজ্ঞায়িত ক্রম সম্পর্কে তথ্য যোগ করেছেন: আপনি অবস্থানে উপাদান পেতে পারেন এন , আপনি অবস্থানে একটি উপাদান যোগ করতে পারেন এন , আপনি অবস্থানে উপাদান অপসারণ করতে পারেন এন ।
একটিতে Collectionআপনি এটি করতে পারবেন না: "এই সংগ্রহে 5 তম উপাদান" সংজ্ঞায়িত করা হয়নি, কারণ কোনও সংজ্ঞায়িত অর্ডার নেই।
এছাড়াও অন্যান্য বিশেষায়িত সংগ্রহ রয়েছে, উদাহরণস্বরূপ এমন একটি Setযা বৈশিষ্ট্যটি যুক্ত করে যে এটিতে কখনও কখনও একই উপাদান থাকবে না।
Collectionজাভা সংগ্রহের শ্রেণিবিন্যাসের মূল ইন্টারফেস। Listঅর্ডার সংগ্রহের সংজ্ঞা দেয় এমন একটি সাব ইন্টারফেস, অন্যান্য সাব ইন্টারফেসগুলি Queueসাধারণত প্রক্রিয়াকরণের জন্য প্রস্তুত উপাদান সংরক্ষণ করবে (যেমন স্ট্যাক )।
নিম্নলিখিত চিত্রটি বিভিন্ন জাভা সংগ্রহের ধরণের মধ্যে সম্পর্ককে প্রদর্শন করে:
Mapএক না Collection।
এর উত্তর দেওয়ার জন্য জাভা এপিআই সেরা
সংগ্রহ
সংগ্রহের শ্রেণিবিন্যাসের মূল ইন্টারফেস। একটি সংগ্রহ বস্তুর একটি গোষ্ঠী প্রতিনিধিত্ব করে, এর উপাদান হিসাবে পরিচিত। কিছু সংগ্রহগুলি সদৃশ উপাদানগুলিকে এবং অন্যেরা তা অনুমোদন করে না। কিছু অর্ডার করা হয় এবং অন্যদের অর্ডার করা হয়। জেডিকে এই ইন্টারফেসের সরাসরি বাস্তবায়ন সরবরাহ করে না: এটি সেট এবং তালিকার মতো আরও নির্দিষ্ট সাব-ইন্টারফেসফেসের বাস্তবায়ন সরবরাহ করে। এই ইন্টারফেসটি সাধারণত চারপাশে সংগ্রহগুলি পাস করতে এবং সর্বাধিক সাধারণতা কাঙ্ক্ষিত যেখানে তাদের ম্যানিপুলেট করতে ব্যবহৃত হয়।
তালিকা (সংগ্রহ প্রসারিত)
অর্ডার করা সংগ্রহ (ক্রম হিসাবেও পরিচিত)। এই ইন্টারফেসটির ব্যবহারকারীর তালিকার প্রতিটি উপাদান সন্নিবেশ করা হয়েছে তার উপর যথাযথ নিয়ন্ত্রণ রয়েছে। ব্যবহারকারী তাদের পূর্ণসংখ্যা সূচক (তালিকার অবস্থান) দ্বারা উপাদানগুলিতে অ্যাক্সেস করতে এবং তালিকার উপাদানগুলির সন্ধান করতে পারে।
সেটগুলি থেকে পৃথক, তালিকাগুলি সাধারণত সদৃশ উপাদানগুলিকে মঞ্জুরি দেয়। আরও আনুষ্ঠানিকভাবে, তালিকাগুলি সাধারণত E1 এবং e2 উপাদানগুলির e1.equals (e2) এর জোড়া দেয় এবং তারা সাধারণত একাধিক নাল উপাদানকে মঞ্জুরি দেয় যদি তারা নাল উপাদানগুলিকে একেবারে অনুমতি দেয়। এটি অনিবার্য নয় যে কোনও ব্যক্তি নকলকে নিষিদ্ধ করার জন্য কোনও তালিকা কার্যকর করতে ইচ্ছুক হতে পারে যখন ব্যবহারকারী তাদের runোকানোর চেষ্টা করে রানটাইম ব্যতিক্রম ছুঁড়ে ফেলে তবে আমরা এই ব্যবহারটি বিরল বলে আশা করি be
তালিকা এবং সেট সংগ্রহের দুটি সাবক্লাস।
তালিকায়, ডেটা নির্দিষ্ট ক্রমে থাকে।
সেট ইন, এটি একই তথ্য দুইবার থাকতে পারে না।
সংগ্রহে, এটি কোনও নির্দিষ্ট ক্রম ছাড়াই ডেটা সঞ্চয় করে এবং সদৃশ ডেটা থাকতে পারে।
সংগ্রহ হ'ল একটি উচ্চ-স্তরের ইন্টারফেস যা জাভা অবজেক্টগুলিকে বর্ণনা করে যা অন্যান্য অবজেক্টের সংগ্রহ থাকতে পারে। এটি কীভাবে অ্যাক্সেস করা হয় সে বিষয়ে খুব নির্দিষ্ট সুনির্দিষ্ট নয়, একই সংগ্রহের ক্ষেত্রে একই বস্তুর একাধিক অনুলিপি থাকতে পারে কি না, ক্রমটি গুরুত্বপূর্ণ কিনা তা। তালিকাটি নির্দিষ্টভাবে বস্তুর সংগ্রহ আদেশ । আপনি যদি কোনও নির্দিষ্ট ক্রমে কোনও তালিকায় কোনও বস্তু স্থাপন করেন তবে তারা সেই ক্রমে থাকবে।
এবং এই দুটি ইন্টারফেসটি কোথায় ব্যবহার করবেন তা সিদ্ধান্ত নেওয়ার চেয়ে আপনি যে কংক্রিট প্রয়োগ করছেন তা স্থির করার চেয়ে কম গুরুত্বপূর্ণ। এটিতে আপনার প্রোগ্রামের সময় এবং স্থানের পারফরম্যান্সের জন্য জড়িত থাকবে। উদাহরণস্বরূপ, আপনি যদি একটি তালিকা চান তবে আপনি একটি অ্যারেলিস্ট বা একটি লিংকডলিস্ট ব্যবহার করতে পারেন, যার প্রতিটিটিতেই অ্যাপ্লিকেশনটির জড়িত রয়েছে। অন্যান্য সংগ্রহের ধরণের জন্য (যেমন সেটস), অনুরূপ বিবেচনা প্রযোজ্য।