- লেখক Alex Aldridge [email protected].
- Public 2023-12-17 13:33.
- সর্বশেষ পরিবর্তিত 2025-01-23 11:01.
অ্যারে বনাম অ্যারেলিস্ট
অ্যারেগুলি উপাদানগুলির একটি সংগ্রহ সঞ্চয় করার জন্য সর্বাধিক ব্যবহৃত ডেটা কাঠামো। বেশিরভাগ প্রোগ্রামিং ল্যাঙ্গুয়েজ সহজে অ্যারে ঘোষণা করতে এবং অ্যারেতে উপাদান অ্যাক্সেস করার পদ্ধতি প্রদান করে। একটি অ্যারেলিস্টকে একটি গতিশীল অ্যারে হিসাবে দেখা যেতে পারে, যা আকারে বড় হতে পারে। এই কারণে, প্রোগ্রামারকে সংজ্ঞায়িত করার সময় অ্যারেলিস্টের আকার জানতে হবে না৷
অ্যারে কি?
চিত্র 1 এ দেখানো হয়েছে, কোডের একটি অংশ যা সাধারণত একটি অ্যারেতে মান ঘোষণা এবং বরাদ্দ করতে ব্যবহৃত হয়। চিত্র 2 মেমরিতে একটি অ্যারে দেখতে কেমন হবে তা দেখানো হয়েছে৷
|
int মান[5]; মান[0]=100; মান[1]=101; মান[2]=102; মান[3]=103; মান[4]=104; |
চিত্র 1: একটি অ্যারেতে মান ঘোষণা এবং বরাদ্দ করার জন্য কোড
| 100 | 101 | 102 | 103 | 104 |
| সূচক: 0 | 1 | 2 | 3 | 4 |
চিত্র 2: মেমরিতে সংরক্ষিত অ্যারে
উপরের কোড, একটি অ্যারে সংজ্ঞায়িত করে যা 5 পূর্ণসংখ্যা সংরক্ষণ করতে পারে এবং সেগুলি 0 থেকে 4 সূচক ব্যবহার করে অ্যাক্সেস করা হয়। একটি অ্যারের একটি গুরুত্বপূর্ণ বৈশিষ্ট্য হল, সম্পূর্ণ অ্যারে মেমরির একক ব্লক হিসাবে বরাদ্দ করা হয় এবং প্রতিটি উপাদান তার পায় অ্যারেতে নিজস্ব স্থান।একবার একটি অ্যারে সংজ্ঞায়িত করা হলে, এর আকার স্থির করা হয়। সুতরাং আপনি যদি কম্পাইলের সময় অ্যারের আকার সম্পর্কে নিশ্চিত না হন তবে আপনাকে নিরাপদ দিকে থাকার জন্য যথেষ্ট বড় অ্যারে নির্ধারণ করতে হবে। কিন্তু, বেশিরভাগ সময়, আমরা আসলে আমাদের বরাদ্দের চেয়ে কম সংখ্যক উপাদান ব্যবহার করতে যাচ্ছি। তাই একটি উল্লেখযোগ্য পরিমাণ মেমরি আসলে নষ্ট হয়. অন্যদিকে যদি "বড় যথেষ্ট অ্যারে" আসলে যথেষ্ট বড় না হয়, তাহলে প্রোগ্রামটি ক্র্যাশ হয়ে যাবে।
অ্যারেলিস্ট কি?
একটি অ্যারেলিস্টকে একটি গতিশীল অ্যারে হিসাবে দেখা যেতে পারে, যা আকারে বড় হতে পারে। সুতরাং অ্যারেলিস্টগুলি এমন পরিস্থিতিতে ব্যবহার করার জন্য আদর্শ যেখানে আপনি ঘোষণার সময় প্রয়োজনীয় উপাদানগুলির আকার জানেন না। জাভাতে, অ্যারেলিস্টগুলি কেবলমাত্র অবজেক্ট ধারণ করতে পারে, তারা আদিম প্রকারগুলিকে সরাসরি ধরে রাখতে পারে না (আপনি আদিম প্রকারগুলিকে একটি বস্তুর ভিতরে রাখতে পারেন বা আদিম প্রকারের র্যাপার ক্লাসগুলি ব্যবহার করতে পারেন)। সাধারণত অ্যারেলিস্টগুলিকে সন্নিবেশ, মুছে ফেলা এবং অনুসন্ধান করার পদ্ধতিগুলি প্রদান করা হয়। একটি উপাদান অ্যাক্সেস করার সময় জটিলতা হল o(1), যেখানে সন্নিবেশ এবং মুছে ফেলার সময় জটিলতা o(n)।জাভাতে, অ্যারেলিস্টগুলিকে ফোরচ লুপ, ইটারেটর ব্যবহার করে বা কেবল সূচী ব্যবহার করে অতিক্রম করা যেতে পারে।
অ্যারে এবং অ্যারেলিস্টের মধ্যে পার্থক্য কী
যদিও অ্যারে এবং অ্যারেলিস্ট এই অর্থে একই রকম যে উভয়ই উপাদানের সংগ্রহ সঞ্চয় করার জন্য ব্যবহার করা হয়, তারা কীভাবে সংজ্ঞায়িত করা হয় তাতে ভিন্ন। অ্যারে সংজ্ঞায়িত করার সময় অ্যারের আকার দিতে হবে, তবে আপনি প্রকৃত আকার না জেনে অ্যারেলিস্টকে সংজ্ঞায়িত করতে পারেন। আপনি একটি অ্যারেলিস্ট সংজ্ঞায়িত করার পরে উপাদান যোগ করতে পারেন এবং অ্যারেগুলির সাথে এটি সম্ভব নয়। কিন্তু জাভাতে, অ্যারেলিস্ট আদিম প্রকারগুলি ধরে রাখতে পারে না, তবে অ্যারেগুলি আদিম প্রকারগুলিকে ধরে রাখতে ব্যবহার করা যেতে পারে। কিন্তু আপনার যদি এমন ডেটা স্ট্রাকচারের প্রয়োজন হয় যা এর আকার পরিবর্তন করতে পারে, তাহলে অ্যারেলিস্ট হবে সবচেয়ে ভালো পছন্দ।