1. ArrayListক্লাস

আজ আমরা ক্লাসটি অন্বেষণ করব ArrayListএটি সংগ্রহ হিসাবে পরিচিত বিভিন্ন শ্রেণীর মধ্যে প্রথম । জাভাতে, সংগ্রহগুলি এমন একটি বিস্তৃত এবং দরকারী বিষয় যে একটি সম্পূর্ণ কোডজিম অনুসন্ধান তাদের জন্য উত্সর্গীকৃত।

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

তাই আজকে আমরা শুধু সহজ ধরনের সংগ্রহের সাথে পরিচিত হব। কিন্তু একটি গভীর পর্যাপ্ত স্তরে যাতে আপনি বুঝতে পারেন এটি কীভাবে ব্যবহার করতে হয় এবং এটি কীভাবে কাজ করে। এখন তাহলে, ArrayListসংগ্রহের সাথে দেখা করুন ।

পেছনের গল্প

আমি একটু ব্যাকগ্রাউন্ড দিয়ে শুরু করব। প্রোগ্রামাররা সত্যিই অ্যারের একটি দিক পছন্দ করেনি: সত্য যে তাদের আকার পরিবর্তন করা যাবে না। যদি আপনাকে একটি অ্যারেতে আরও তিনটি উপাদান সঞ্চয় করতে হয় তবে কেবল একটি খালি ঘর থাকে?

একটি অ্যারের স্থান সীমাবদ্ধতার একমাত্র সমাধান ছিল একটি খুব বড় অ্যারে তৈরি করা যাতে আপনার সঞ্চয় করার জন্য প্রয়োজনীয় সমস্ত উপাদানগুলিকে মিটমাট করা যায়। কিন্তু এটি সাধারণত স্মৃতির অপচয় ছিল। যদি একটি অ্যারেতে সাধারণত দুটি বা তিনটি উপাদান থাকে কিন্তু এমনকি একটি ছোট সম্ভাবনা থাকে যে এটির মধ্যে 100টি সঞ্চয় করতে হবে, তাহলে 100 সঞ্চয় করার ক্ষমতা সহ একটি অ্যারে তৈরি করা প্রয়োজন।

তাহলে প্রোগ্রামাররা কি নিয়ে এসেছে? তারা ক্লাস লিখেছিল ArrayList, যা ক্লাসের মতো একই কাজ করেছিল Array, কিন্তু আকার পরিবর্তনযোগ্য ছিল।

অ্যারেলিস্ট ক্লাস

ক্লাসের নাম ArrayListদুটি শব্দ থেকে গঠিত: অ্যারে + তালিকা। Arrayএকটি অ্যারে এবং Listএকটি তালিকা.

প্রতিটি ArrayListবস্তুর উপাদানগুলির একটি সাধারণ বিন্যাস রয়েছে। যখন আপনি একটি থেকে উপাদানগুলি পড়েন ArrayList, তখন বস্তুটি তাদের অভ্যন্তরীণ অ্যারে থেকে পুনরুদ্ধার করে। আপনি যখন উপাদানগুলি লেখেন, তখন এটি অভ্যন্তরীণ অ্যারেতে তাদের লেখে।

অ্যারেলিস্ট ক্লাসে অ্যারেগুলির সমস্ত অসুবিধার অভাব রয়েছে। এটা জানে কিভাবে:

  • একটি নির্দিষ্ট ধরনের উপাদান সংরক্ষণ করুন
  • গতিশীলভাবে তালিকার আকার পরিবর্তন করুন
  • তালিকার শেষে উপাদান যোগ করুন
  • তালিকার শুরুতে বা মাঝখানে উপাদান সন্নিবেশ করান
  • তালিকার যেকোনো জায়গা থেকে উপাদানগুলি সরান

আরও বিস্তারিত জানার জন্য, নীচে দেখুন:


2. একটি ArrayListবস্তু তৈরি করা

একটি বস্তু তৈরি করতে ArrayList, আপনাকে এই মত কোড লিখতে হবে:

ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();

ArrayListসংগ্রহের ধরন/শ্রেণী কোথায় , TypeParameterসংগ্রহে সংরক্ষিত উপাদানের ধরন ArrayListএবং একটি পরিবর্তনশীলের nameনাম ।ArrayList<TypeParameter>

ভেরিয়েবলের nameএকটি জেনেরিক টাইপ আছে। এটি দুটি ধরণের নিয়ে গঠিত: সংগ্রহের ধরনটি প্রথমে নির্দেশিত হয় এবং তারপরে সংগ্রহে সঞ্চিত উপাদানগুলির ধরন নির্দেশ করতে কোণ বন্ধনী ব্যবহার করা হয়।

উদাহরণ:

কোড বর্ণনা
ArrayList<Integer> list = new ArrayList<Integer>();
পূর্ণসংখ্যার তালিকা
ArrayList<String> list = new ArrayList<String>();
স্ট্রিং তালিকা
ArrayList<Double> list = new ArrayList<Double>();
প্রকৃত সংখ্যার তালিকা

অ্যারেগুলির বিপরীতে, সংগ্রহগুলি আদিম প্রকারগুলি সংরক্ষণ করতে পারে না, শুধুমাত্র রেফারেন্স প্রকারগুলিintসুতরাং আপনার যদি s এর সংগ্রহের প্রয়োজন হয় তবে Integerএর পরিবর্তে র্যাপার ক্লাস ব্যবহার করুন।


3. একটি সঙ্গে অপারেশনArrayList

প্রাথমিকভাবে, নতুন তৈরি করা তালিকার দৈর্ঘ্য শূন্য, কারণ এতে 0টি উপাদান রয়েছে। আপনি যদি তালিকায় একটি উপাদান যোগ করেন, তবে এর দৈর্ঘ্য 1 দ্বারা বৃদ্ধি পায়। আপনি যদি যোগ করা উপাদানটি সরিয়ে দেন, তাহলে দৈর্ঘ্যটি শূন্যে ফিরে আসবে।

নিম্নলিখিত টেবিলটি আপনাকে ক্লাসের পদ্ধতিগুলি সম্পর্কে আরও শেখাতে পারে ArrayList:

পদ্ধতি বর্ণনা
void add(Type value)
তালিকায় পাস করা উপাদান যোগ করে
void add(int index, Type value)
তালিকার একটি নির্দিষ্ট স্থানে একটি উপাদান যোগ করে।
Type get(int index)
যে উপাদানটির সূচকটি প্রদান করেindex
void set(int index, Type value)
valueযে উপাদানটির সূচী সেটিকে বরাদ্দ করেindex
Type remove(int index)
যে উপাদানটির সূচকটি সরিয়ে দেয় index। সরানো উপাদান প্রদান করে।
Type remove(Type value)
আপনি যে উপাদানটি পদ্ধতিতে পাস করেন তা সরিয়ে দেয়। এই ধরনের একাধিক উপাদান থাকলে, প্রথমটি সরানো হবে।
void clear()
তালিকা সাফ করে, অর্থাৎ তালিকা থেকে সমস্ত উপাদান সরিয়ে দেয়।
boolean contains(Type value)
তালিকায় আছে কিনা পরীক্ষা করে value
boolean isEmpty()
তালিকাটি খালি আছে কি না তা পরীক্ষা করে। অন্য কথায়, তালিকার দৈর্ঘ্য শূন্য কিনা।
int size()
তালিকার আকার প্রদান করে, অর্থাৎ তালিকার উপাদানের সংখ্যা।
Type[] toArray(Type[] array)
তালিকার উপাদান সমন্বিত একটি অ্যারে প্রদান করে।
আপনাকে পদ্ধতিতে অ্যারে পাস করতে হবে।

এই পদ্ধতিগুলি আপনাকে তালিকার সাথে আপনি যা করতে চান তা করতে দেয়: উপাদানগুলি অদলবদল করুন, উপাদান যুক্ত করুন এবং উপাদানগুলি সরান৷ আপনি একটি একক কমান্ড দিয়ে তালিকাটি সাফ করতে পারেন, বা এমনকি তালিকাটিকে একটি অ্যারেতে রূপান্তর করতে পারেন।



4. ArrayListএবং এর তুলনাArray

আমি মনে করি না আমরা তুলনা ArrayListএবং একটি অ্যারে এড়াতে পারি।

অ্যারেগুলির সাথে আপনি শুধুমাত্র 4টি কাজ সম্পাদন করতে পারেন:

  • একটি অ্যারে তৈরি করুন
  • সূচক দ্বারা একটি উপাদান পান
  • সূচক দ্বারা একটি উপাদান সেট করুন
  • অ্যারের দৈর্ঘ্য পান

এখানে এই অপারেশনগুলি রয়েছে যেমন তারা একটি অ্যারে এবং একটিতে প্রযোজ্য ArrayList:

অ্যারে অ্যারেলিস্ট
String[] array = new String[10];
ArrayList<String> list = new  ArrayList<String>();
String s = array[0];
String s = list.get(0);
array[0] = "Bye";
list.set(0, "Bye");
int count = array.length;
int count = list.size();

আসুন তুলনা করি কিভাবে একটি ArrayListকাজ করে বনাম কিভাবে একটি অ্যারে কাজ করে। উদাহরণস্বরূপ, আসুন এই কাজটি বাস্তবায়ন করি: "কীবোর্ড থেকে 10টি স্ট্রিং পড়ুন এবং তাদের বিপরীত ক্রমে পর্দায় প্রদর্শন করুন"

অ্যারে ব্যবহার করে ArrayList ব্যবহার করে
Scanner console = new Scanner(System.in);

// Read strings from the keyboard
String[] list = new String[10];

for (int i = 0; i < list.length; i++)
{
    String s = console.nextLine();
    list[i] = s;
}

// Display the contents of the array on the screen
for (int i = 0; i < list.length; i++)
{
    int j = list.length - i - 1;
    System.out.println(list[j]);
}
Scanner console = new Scanner(System.in);

// Read strings from the keyboard
ArrayList<String> list = new ArrayList<String>();

for (int i = 0; i < 10; i++)
{
    String s = console.nextLine();
    list.add(s);
}

// Display the contents of the collection on the screen
for (int i = 0; i < list.size(); i++)
{
    int j = list.size() - i - 1;
    System.out.println(list.get(j));
}

সাদৃশ্য স্পষ্ট। সবকিছু একরকম ছোট এবং অ্যারে জন্য পরিষ্কার. তবে ArrayListকঠিনও নয়: একটি উপাদান পেতে, আমরা get()পদ্ধতিটি ব্যবহার করি; একটি উপাদান পরিবর্তন করতে, set()পদ্ধতি; তালিকার দৈর্ঘ্য পেতে, size()পদ্ধতি।

তাহলে কেন প্রোগ্রামাররা ক্লাস ব্যবহার করবেন ArrayList?

সম্পূর্ণ পয়েন্ট, অবশ্যই, অন্যান্য সমস্ত পদ্ধতি যা সাধারণ অ্যারেতে নেই:

  • তালিকায় একটি উপাদান যোগ করুন
  • তালিকার মাঝখানে একটি উপাদান যোগ করুন
  • তালিকায় একটি উপাদান খুঁজুন
  • একটি তালিকা থেকে একটি উপাদান অপসারণ