কী পার্থক্য - অ্যারেলিস্ট বনাম লিঙ্কডলিস্ট
সংগ্রহগুলি ডেটা সংরক্ষণের জন্য উপযোগী। একটি সাধারণ অ্যারেতে, অ্যারের আকার স্থির করা হয়। কখনও কখনও এটি অ্যারে তৈরি করতে হয় যা প্রয়োজন অনুসারে বৃদ্ধি পেতে পারে। জাভার মতো প্রোগ্রামিং ভাষার সংগ্রহ রয়েছে। এটি ক্লাস এবং ইন্টারফেসের একটি সেট সহ একটি কাঠামো। এটি উপাদানগুলির একটি গ্রুপের জন্য একটি ধারক হিসাবে কাজ করে। সংগ্রহগুলি উপাদানগুলির সেট সংরক্ষণ, আপডেট, পুনরুদ্ধার করার অনুমতি দেয়। এটি তালিকা, সেট, গাছ এবং মানচিত্রের মতো ডেটা কাঠামোর সাথে কাজ করতে সহায়তা করে। তালিকাটি সংগ্রহ কাঠামোর একটি ইন্টারফেস। ArrayList এবং LinkedList সংগ্রহ কাঠামোর দুটি শ্রেণী। তারা সংগ্রহ ইন্টারফেস এবং তালিকা ইন্টারফেস বাস্তবায়ন.এই নিবন্ধটি ArrayList এবং LinkedList এর মধ্যে পার্থক্য নিয়ে আলোচনা করে। ArrayList হল একটি ক্লাস যা AbstractList কে প্রসারিত করে এবং তালিকা ইন্টারফেস প্রয়োগ করে, যা অভ্যন্তরীণভাবে ডাটা উপাদানগুলিকে সঞ্চয় করার জন্য একটি গতিশীল অ্যারে ব্যবহার করে। LinkedList হল একটি ক্লাস যা AbstractSequentialList কে প্রসারিত করে এবং List, Deque, এবং Queue ইন্টারফেস প্রয়োগ করে, যা অভ্যন্তরীণভাবে ডাটা উপাদান সঞ্চয় করার জন্য দ্বিগুণ লিঙ্কযুক্ত তালিকা ব্যবহার করে। এটি ArrayList এবং LinkedList এর মধ্যে মূল পার্থক্য।
ArayList কি?
অ্যারেলিস্ট ক্লাসটি ডায়নামিক অ্যারে তৈরি করতে ব্যবহৃত হয়। একটি সাধারণ অ্যারের থেকে ভিন্ন, একটি গতিশীল অ্যারের আকার নির্দিষ্ট করা হয় না। ArrayList ক্লাস ব্যবহার করে তৈরি করা একটি বস্তুকে তালিকায় উপাদানগুলির একটি সেট সংরক্ষণ করার অনুমতি দেওয়া হয়। ক্ষমতা স্বয়ংক্রিয়ভাবে বৃদ্ধি পায়, তাই প্রোগ্রামার তালিকায় উপাদান যোগ করতে পারে। ArrayList ক্লাস AbstractList ক্লাস প্রসারিত করে যা List ইন্টারফেস প্রয়োগ করে। সুতরাং, তালিকা ইন্টারফেসের পদ্ধতিগুলি ArrayList দ্বারা ব্যবহার করা যেতে পারে। উপাদান অ্যাক্সেস করতে, get() পদ্ধতি ব্যবহার করা হয়।তালিকায় উপাদান যোগ করতে add() পদ্ধতি ব্যবহার করা যেতে পারে। রিমুভ() পদ্ধতিটি তালিকা থেকে একটি উপাদান সরাতে ব্যবহৃত হয়। নিচের প্রোগ্রামটি দেখুন।
চিত্র 01: অ্যারেলিস্ট এর উদাহরণ
উপরের প্রোগ্রাম অনুসারে, ArrayList-এর একটি অবজেক্ট তৈরি করা হয়েছে। যোগ পদ্ধতি ব্যবহার করে, উপাদানগুলি গতিশীলভাবে যোগ করা যেতে পারে। "A", "B", "C", "D" এবং "E" উপাদান যোগ পদ্ধতি ব্যবহার করে যোগ করা হয়। তালিকা থেকে একটি উপাদান অপসারণ করতে অপসারণ পদ্ধতি ব্যবহার করা হয়। অপসারণ পদ্ধতিতে 4 পাস করার সময়, 4 র্থ সূচকের অক্ষর যা "E" তালিকা থেকে সরানো হয়। ফর লুপ ব্যবহার করে তালিকার মাধ্যমে পুনরাবৃত্তি করার সময়, A, B, C এবং D অক্ষরগুলি মুদ্রণ করবে।
লিঙ্কডলিস্ট কি?
অ্যারেলিস্টের মতো, লিঙ্কডলিস্ট ডাটা উপাদানগুলিকে গতিশীলভাবে সংরক্ষণ করতে ব্যবহৃত হয়। লিঙ্কডলিস্ট ক্লাস ব্যবহার করে তৈরি করা একটি বস্তুকে তালিকায় উপাদানগুলির একটি সেট সংরক্ষণ করার অনুমতি দেওয়া হয়। ক্ষমতা স্বয়ংক্রিয়ভাবে বৃদ্ধি পায়, তাই প্রোগ্রামার তালিকায় উপাদান যোগ করতে পারে। এটি অভ্যন্তরীণভাবে ডেটা সঞ্চয় করতে দ্বিগুণ লিঙ্কযুক্ত তালিকা ব্যবহার করে। একটি দ্বিগুণ লিঙ্কযুক্ত তালিকায়, ডেটা নোড হিসাবে সংরক্ষণ করা হয়। প্রতিটি নোডে দুটি লিঙ্ক রয়েছে। প্রথম লিঙ্কটি পূর্ববর্তী নোডের দিকে নির্দেশ করে। পরবর্তী লিঙ্কটি ক্রমানুসারে পরবর্তী নোডের দিকে নির্দেশ করে৷
The LinkedList ক্লাস AbstractSequentialList ক্লাস প্রসারিত করে এবং তালিকা ইন্টারফেস প্রয়োগ করে। সুতরাং, লিস্ট ইন্টারফেসের পদ্ধতিগুলি লিঙ্কডলিস্ট দ্বারা ব্যবহার করা যেতে পারে। তালিকার উপাদানগুলি অ্যাক্সেস করতে get() পদ্ধতি ব্যবহার করা যেতে পারে। তালিকায় উপাদান যোগ করতে add() পদ্ধতি ব্যবহার করা যেতে পারে। রিমুভ() পদ্ধতিটি তালিকা থেকে একটি উপাদান সরাতে ব্যবহৃত হয়। নিচের প্রোগ্রামটি দেখুন।
চিত্র 02: লিঙ্কডলিস্ট সহ উদাহরণ
উপরের প্রোগ্রাম অনুসারে, লিঙ্কডলিস্টের একটি অবজেক্ট তৈরি করা হয়েছে। যোগ পদ্ধতি ব্যবহার করে, উপাদানগুলি গতিশীলভাবে যোগ করা যেতে পারে। "A", "B", "C", "D" এবং "E" উপাদান যোগ পদ্ধতি ব্যবহার করে যোগ করা হয়। তালিকা থেকে একটি উপাদান অপসারণ করতে অপসারণ পদ্ধতি ব্যবহার করা হয়। অপসারণ পদ্ধতিতে 4 পাস করার সময়, 4 র্থ সূচকের অক্ষর যা "E" তালিকা থেকে সরানো হয়। ফর লুপ ব্যবহার করে পুনরাবৃত্তি করার সময়, A, B, C এবং D অক্ষরগুলি মুদ্রণ করবে।
অ্যারেলিস্ট এবং লিঙ্কডলিস্টের মধ্যে মিল কী?
- অ্যারেলিস্ট এবং লিঙ্কডলিস্ট উভয়ই তালিকা ইন্টারফেস প্রয়োগ করে।
- অ্যারেলিস্ট এবং লিঙ্কডলিস্ট উভয়েই সদৃশ উপাদান থাকতে পারে।
- অ্যারেলিস্ট এবং লিঙ্কডলিস্ট উভয়ই সন্নিবেশের ক্রম বজায় রাখে।
অ্যারেলিস্ট এবং লিঙ্কডলিস্টের মধ্যে পার্থক্য কী?
অ্যারেলিস্ট বনাম লিঙ্কডলিস্ট |
|
ArrayList হল একটি ক্লাস যা অ্যাবস্ট্রাক্টলিস্টকে প্রসারিত করে এবং তালিকা ইন্টারফেস প্রয়োগ করে যা অভ্যন্তরীণভাবে ডেটা উপাদানগুলি সঞ্চয় করার জন্য একটি গতিশীল অ্যারে ব্যবহার করে৷ | LinkedList হল একটি ক্লাস যা AbstractSequentialList প্রসারিত করে এবং List, Deque, Queue ইন্টারফেস প্রয়োগ করে, যা অভ্যন্তরীণভাবে ডাটা উপাদান সঞ্চয় করতে দ্বিগুণ লিঙ্কযুক্ত তালিকা ব্যবহার করে। |
অ্যাক্সেসিং উপাদান | |
অ্যারেলিস্টের উপাদানগুলি অ্যাক্সেস করা লিঙ্কডলিস্টের চেয়ে দ্রুত। | লিঙ্কডলিস্টের উপাদানগুলি অ্যাক্সেস করা অ্যারেলিস্টের তুলনায় ধীর। |
মনিপুলেট করা উপাদান | |
অ্যারেলিস্টের উপাদানগুলিকে ম্যানিপুলেট করা লিঙ্কডলিস্টের তুলনায় ধীর। | LinkedList-এর উপাদান ম্যানিপুলেট করা একটি ArrayList-এর চেয়ে দ্রুত। |
আচরণ | |
ArrayList একটি তালিকা হিসাবে কাজ করে। | LinkedList একটি তালিকা এবং একটি সারি হিসাবে কাজ করে। |
সারাংশ – অ্যারেলিস্ট বনাম লিঙ্কডলিস্ট
সংগ্রহ কাঠামোটি ডেটা স্ট্রাকচার যেমন তালিকা, গাছ, মানচিত্র এবং সেটগুলির সাথে কাজ করার অনুমতি দেয়। তালিকাটি সংগ্রহ কাঠামোর একটি ইন্টারফেস। এই নিবন্ধটি ArrayList এবং LinkedList এর মধ্যে পার্থক্য নিয়ে আলোচনা করেছে। ArrayList হল এমন একটি শ্রেণী যা বিমূর্ত তালিকাকে প্রসারিত করে এবং তালিকা ইন্টারফেস প্রয়োগ করে যা অভ্যন্তরীণভাবে ডেটা উপাদানগুলি সঞ্চয় করার জন্য একটি গতিশীল অ্যারে ব্যবহার করে।LinkedList হল একটি ক্লাস যা AbstractSequentialList কে প্রসারিত করে এবং List, Deque, Queue ইন্টারফেস প্রয়োগ করে, যা অভ্যন্তরীণভাবে ডাটা উপাদান সঞ্চয় করার জন্য দ্বিগুণ লিঙ্কযুক্ত তালিকা ব্যবহার করে। এটি ArrayList এবং LinkedList এর মধ্যে পার্থক্য।