ভূমিকা

প্রায় প্রতিটি প্রোগ্রামের কিছু সেট ডেটা সংরক্ষণ করা প্রয়োজন। এটা স্ট্রিং এবং সংখ্যা, বস্তু, এবং তাই হতে পারে. অ্যারে একটি চমত্কার স্টোরেজ সমাধান. কিন্তু অ্যারে নির্দিষ্ট সীমাবদ্ধতা আছে. উদাহরণস্বরূপ, তাদের আকার স্থির, উপাদানগুলি সরানো যাবে না এবং আপনি মাঝখানে উপাদানগুলি সন্নিবেশ করতে পারবেন না। সংগ্রহগুলি এই এবং অন্যান্য সীমাবদ্ধতার কাছাকাছি পেতে তৈরি করা হয়েছিল। সমস্ত ধরণের সংগ্রহ (এবং সেগুলির মধ্যে অনেকগুলি রয়েছে, যেমনটি আমরা এই পাঠে পরে দেখব) গতিশীলভাবে তাদের আকার পরিবর্তন করার ক্ষমতা রয়েছে। কিছু সংগ্রহের ধরন অর্ডার করা উপাদানগুলিকে সঞ্চয় করতে পারে এবং নতুন উপাদানগুলি যোগ করার সাথে সাথে স্বয়ংক্রিয়ভাবে ক্রমানুসারে রাখতে পারে।

এই পাঠে, আমরা জাভা কালেকশন ফ্রেমওয়ার্কের বেস কালেকশনের ক্লাস হায়ারার্কির সাথে পরিচিত হব । এছাড়াও বিভিন্ন বিকল্প লাইব্রেরি রয়েছে যা স্ট্যান্ডার্ড জাভা কালেকশন ফ্রেমওয়ার্কের ক্ষমতা প্রসারিত করে । এর মধ্যে সবচেয়ে জনপ্রিয় পেয়ারা (গুগল কালেকশন লাইব্রেরি)।

*সকল ইন্টারফেস এবং ক্লাস ডায়াগ্রামে উপস্থাপন করা হয় না। সহজে বোঝার জন্য কিছু বাদ দেওয়া হয়েছে।

মৌলিক ইন্টারফেস

চিত্রটি দেখায় যে দুটি মৌলিক ইন্টারফেস রয়েছে যা বাকি ক্লাস এবং ইন্টারফেস গঠনের জন্য প্রয়োগ করা হয়।

আসুন এই ইন্টারফেসগুলি একবার দেখে নেওয়া যাক:

  1. সংগ্রহ - একটি সাধারণ সংগ্রহ যা উপাদানগুলির একটি সেট (বস্তু) ধারণ করে। এই সংগ্রহে উপাদানগুলির সাথে কাজ করার জন্য মৌলিক পদ্ধতি রয়েছে: সন্নিবেশ ( যোগ করুন , যোগ করুন ), সরান ( অপসারণ করুন , সমস্ত সরান , পরিষ্কার করুন ), অনুসন্ধান করুন ( রয়েছে , সমস্ত রয়েছে ), সংগ্রহটি খালি আছে কিনা তা পরীক্ষা করুন ( isEmpty ) এবং আকার ( আকার ) পান।

  2. মানচিত্র — মূল-মান জোড়া হিসাবে গঠন করা একটি সংগ্রহ। তাছাড়া, একটি মানচিত্রের প্রতিটি কীঅনন্য: কোনো দুটি কী অভিন্ন মান নেই। এই সংগ্রহকে কখনও কখনও অভিধান বলা হয়। মানচিত্র একটি পৃথক ইন্টারফেস. এটি সংগ্রহ ইন্টারফেস বাস্তবায়ন করে না , কিন্তু জাভা সংগ্রহ কাঠামোর অংশ।

একটি মানচিত্রে উপাদানগুলির সাথে কাজ করার জন্য দরকারী পদ্ধতি :

  • সন্নিবেশ করান ( পুট , সব রাখুন )

  • পান ( পান , কীসেট , মান , এন্ট্রিসেট )

  • সরান ( মুছে ফেলুন , পরিষ্কার করুন )

  • অনুসন্ধান ( containsKey , containsValue )

  • সংগ্রহটি খালি কিনা তা পরীক্ষা করুন ( খালি )

  • আকার পান ( আকার )

এখন আসুন তাদের প্রতিটি সম্পর্কে আরও কথা বলি।

সংগ্রহ ইন্টারফেস

সংগ্রহের ইন্টারফেসটি পুনরাবৃত্তিযোগ্য ইন্টারফেসকে প্রসারিত করে , যার একটি একক পদ্ধতি রয়েছে: iterator () । আমাদের জন্য, এর মানে হল যে কোনো সংগ্রহ যা ইটারেবলকে উত্তরাধিকারসূত্রে প্রাপ্ত করে একটি পুনরাবৃত্তিকারীকে ফিরিয়ে দিতে সক্ষম হবে।

একটি পুনরাবৃত্তিকারী একটি বিশেষ বস্তু যা আপনি যেকোনো সংগ্রহের উপাদানগুলি অ্যাক্সেস করতে ব্যবহার করতে পারেন, তার নির্দিষ্ট বাস্তবায়ন নির্বিশেষে।

চিত্রটি দেখায় যে 3টি ইন্টারফেস সংগ্রহ ইন্টারফেসের উত্তরাধিকারী: তালিকা , সারি এবং সেট । এখন আমরা সংক্ষেপে তাদের প্রতিটি তাকান হবে.

তালিকা হল একটি অর্ডারকৃত সংগ্রহ যা ডুপ্লিকেট মানকে অনুমতি দেয়। একটি তালিকার একটি বিশেষ বৈশিষ্ট্যহল যে এর উপাদানগুলি সংখ্যাযুক্ত এবং সংখ্যা (সূচক) দ্বারা অ্যাক্সেস করা যেতে পারে।

একটি সারি উপাদানগুলিকে সারিতে যুক্ত করার ক্রমে সঞ্চয় করে৷

একটি তালিকার বিপরীতে, একটি সেট একটি অবিন্যস্ত সংগ্রহের প্রতিনিধিত্ব করে যা বারবার উপাদানগুলিকে অনুমতি দেয় না। সেট ইন্টারফেস একটি গাণিতিক সেটের ধারণার সাথে মিলে যায়

মানচিত্র ইন্টারফেসের বাস্তবায়ন

আমরা দেখতে পাচ্ছি যে মানচিত্র ইন্টারফেস অনন্য কী এবং মানগুলির মধ্যে একটি ম্যাপিং উপস্থাপন করে।

interface Map<K, V>

যেখানে K হল কীগুলির ধরন এবং V হল সংরক্ষিত মানগুলির ধরন।

একটি কী ব্যবহার করে, আমরা একটি মানচিত্র থেকে ডেটা বের করতে পারি । একটি মানচিত্রে একটি উপাদান যোগ করার জন্য , আমাদের অবশ্যই একটি কী এবং একটি মান নির্দিষ্ট করতে হবে।

আসুন মানচিত্রের কিছু বাস্তবায়ন দেখি :

  1. হ্যাশম্যাপ হল মানচিত্রের একটি বাস্তবায়নযা হ্যাশ টেবিলের উপর ভিত্তি করে। এটি null সহ যেকোনো ধরনের কী এবং মান সঞ্চয় করতে পারে। উপাদানের ক্রম নিশ্চিত করা হয় না.

  2. LinkedHashMap হল একটি ডেটা স্ট্রাকচার যা উপাদানগুলির লিঙ্কযুক্ত তালিকা হিসাবে ডেটা সংরক্ষণ করে। উপাদানগুলি যে ক্রমে যুক্ত করা হয়েছিল সেই ক্রমে তালিকায় উপস্থিত হয়।

  3. ট্রিম্যাপ সাজানো ম্যাপ ইন্টারফেস প্রয়োগ করে( নেভিগেবলম্যাপ ইন্টারফেসের মাধ্যমে)। এই কাঠামোর উপাদানগুলি সাজানো ক্রমে সংরক্ষণ করা হয় (যখন একটি নতুন উপাদান যোগ করা হয়, সংগ্রহটি স্বয়ংক্রিয়ভাবে সাজানো হয়)। দ্রুত পুনরুদ্ধার সহ প্রচুর পরিমাণে সাজানো ডেটা সংরক্ষণের জন্য TreeMap দুর্দান্ত।

পুরানো সংগ্রহ:

জাভাতে পূর্ববর্তী সংস্করণ থেকে অপ্রচলিত সংগ্রহ রয়েছে (অগ্রগতি সামঞ্জস্য বজায় রাখার জন্য)। এই পুরানো সংগ্রহগুলি নতুন কোডে ব্যবহার করা উচিত নয়:

  • গণনা — Iterator ইন্টারফেসের অনুরূপ;

  • ভেক্টর — উপাদানগুলির একটি অর্ডারকৃত তালিকা এবং ArrayList ক্লাসের অনুরূপ;

  • স্ট্যাক — স্ট্যাক ডেটা স্ট্রাকচারের একটি বাস্তবায়ন, যা বইয়ের স্ট্যাকের সাথে আপনি কীভাবে ইন্টারঅ্যাক্ট করবেন তার মতো উপাদানগুলি সঞ্চয় করে এবং পরিচালনা করে। স্ট্যাকে উপাদান যুক্ত করার পদ্ধতি রয়েছে ( ধাক্কা ) এবং সেগুলিকে সরিয়ে নেওয়া ( pop );

  • অভিধান — মানচিত্র ইন্টারফেসের অনুরূপ, কিন্তু এটি একটি বিমূর্ত শ্রেণী;

  • হ্যাশটেবল — হ্যাশম্যাপের অনুরূপ।

আপনি এই নিবন্ধে সংগ্রহ ফ্রেমওয়ার্ক সম্পর্কে আরও পড়তে পারেন ।