"হ্যালো, আমার খুব স্মার্ট ছাত্র!"

"হ্যালো, ঋষি!"

"আপনি কি অ্যারে সম্পর্কে একটি নতুন আলোচনার জন্য পিন করছেন? আচ্ছা, আজ আমরা আপনার জন্য একটি নিয়েছি! আজ আমি আপনাকে জ্যাগড এবং বহুমাত্রিক অ্যারে সম্পর্কে বলতে যাচ্ছি।"

"রক্তপিপাসু এবং ভীতিকর শোনাচ্ছে।"

"চিন্তা করবেন না, একজন সত্যিকারের প্রোগ্রামার সর্বদা একটি অ্যারে পরিচালনা করতে পারে, এমনকি যখন এটি তার দাঁত খালি করে। জোকস একপাশে, একটি অ্যারের জ্যাগডনেস শুধুমাত্র একটি দ্বি-মাত্রিক অ্যারের সারিগুলি অদলবদল করার ক্ষমতা নয়, একটি অ্যারে তৈরি করার ক্ষমতাও প্রতিফলিত করে। যদিও এটা হতে হবে।

"আসুন আপনি একটি দ্বি-মাত্রিক অ্যারের প্রথম সারির দৈর্ঘ্য 10 এবং দ্বিতীয়টি 50 হতে চান।"

"আপনি কি সত্যিই এটা করতে পারেন?"

"অবশ্যই! প্রথমে, আমরা একটি 'কন্টেইনারের ধারক' তৈরি করি — এটিই প্রথম অ্যারে, যা সারিগুলির অ্যারের রেফারেন্স সংরক্ষণ করবে৷ এইভাবে এটি করা হয়:

int[][] name = new int[height][];

"আপনি কেবল দ্বিতীয় মাত্রা বাদ দেন , এবং জাভা মেশিন কন্টেইনারগুলির একটি ধারক তৈরি করে৷ এই কোডটি কার্যকর করার পরে এটি মেমরিতে থাকবে:

"এবং, ভাল, আপনি ইতিমধ্যেই জানেন কিভাবে এক-মাত্রিক অ্যারে তৈরি করতে হয় 🙂৷

ফলাফলের কোডটি দেখতে এইরকম হবে:

// Matrix of important data
int[][] matrix = new int[2][];
matrix[0] = new int[10];
matrix[1] = new int[50]
দ্বি-মাত্রিক অ্যারে

জিরোথ সারিটি 10উপাদানগুলির একটি বিন্যাস
প্রথম সারিটি 50উপাদানগুলির একটি বিন্যাস

"আমরা এইমাত্র একটি তথাকথিত "জ্যাগড" অ্যারে তৈরি করেছি৷ এর প্রান্তগুলি রুক্ষ এবং অনিয়মিত৷

"এবং যদি আমরা এখন এই অ্যারের সমস্ত উপাদানগুলিকে স্ক্রিনে প্রদর্শন করতে চাই, তাহলে অ্যারের lengthঅ্যারেটি কাজে আসবে: সর্বোপরি, অ্যারের সারির দৈর্ঘ্য ভিন্ন।

"যাইহোক, আপনি কি আমাকে বলতে পারেন কিভাবে আমাদের উদাহরণে 'পাত্রের ধারক'-এর দৈর্ঘ্য খুঁজে পাওয়া যায়? এটি একটি অ্যারে অবজেক্ট, যার মানে এটির একটি দৈর্ঘ্য রয়েছে।"

"সম্ভবত matrix.length?"

"বেশ ঠিক! এবং সারি গঠন করে যে অ্যারেগুলির জন্য, আমরা matrix[0].lengthজিরোথ সারির জন্য ব্যবহার করব।"

"এবং প্রথমটির জন্য, এর মানে আমরা ব্যবহার করব matrix[1].length?"

"একদম ঠিক। প্রথম ক্ষেত্রে, কমান্ডটি কার্যকর করলে 10 পাওয়া যাবে, এবং দ্বিতীয় ক্ষেত্রে, ফলাফল 50 হবে।

একটি দ্বি-মাত্রিক অ্যারের সাথে কাজ করা

"এখন একটি দ্বি-মাত্রিক অ্যারে প্রদর্শন করার চেষ্টা করা যাক:

int[][] matrix = new int[3][];
matrix[0] = {1, 2, 3, 4, 5, 6};
matrix[1] = {1, 2, 3};
matrix[2] = {1};
for (int i = 0; i < matrix.length; i++)
{
   for (int j = 0; j < matrix[i].length; j++)
      System.out.print( matrix[i][j] + " " );
   System.out.println();
}
একটি অ্যারে তৈরি করুন
মান দিয়ে অ্যারেটি পূরণ করুন


আউটার লুপ যা অ্যারের সারিগুলিতে পুনরাবৃত্তি করে।
অভ্যন্তরীণ লুপ যা একটি একক সারির ঘরের উপর পুনরাবৃত্তি করে।

"আপনি দেখতে পাচ্ছেন, আমাদের দুটি নেস্টেড লুপ দরকার। প্রথমটিকে আমরা বলি বাইরের, এবং দ্বিতীয়টিকে - ভিতরের

"বাহ্যিক লুপে ( iভেরিয়েবল), আমরা ক্রমানুসারে সমস্ত সারি (অ্যারে) দিয়ে যাই যা আমাদের দ্বি-মাত্রিক অ্যারে তৈরি করে৷ প্রতিটি মান iসেই সূচকের সাথে একটি সারির সাথে মিলে যায়৷

"অভ্যন্তরীণ লুপে (ভেরিয়েবল j), আমরা সারির সমস্ত কক্ষের উপর পুনরাবৃত্তি করি। ভিতরের লুপের জন্য ধন্যবাদ, একটি সারি, যা একটি এক-মাত্রিক অ্যারের মান নিয়ে গঠিত, পর্দায় প্রদর্শিত হবে।

"এটি প্রদর্শিত হবে:

অ্যারের একটি লাইন প্রক্রিয়া করা হয় 1 2 3 4 5 6
অ্যারের দুটি লাইন প্রক্রিয়া করা হয় 1 2 3 4 5 6
1 2 3
অ্যারের তিনটি লাইন প্রক্রিয়া করা হয় 1 2 3 4 5 6
1 2 3
1

বহুমাত্রিক অ্যারে

"অ্যামিগো! আপনি কি অনুমান করেছেন যে যদি দ্বি-মাত্রিক অ্যারে থাকে, তাহলে ত্রিমাত্রিকও হতে পারে?

"আমি শুধু এটি সম্পর্কে চিন্তা করছিলাম, কিন্তু জিজ্ঞাসা করতে বিব্রত বোধ করছিলাম।

"হ্যাঁ, আপনি একটি ত্রিমাত্রিক অ্যারে তৈরি করতে পারেন, এবং সাধারণভাবে, যেকোনো মাত্রার একটি অ্যারে৷ এই ধরনের অ্যারেগুলিকে বলা হয় 'বহুমাত্রিক'৷ শুধু মজা করার জন্য, আসুন একটি বহুমাত্রিক অ্যারে তৈরি করি যার 4 মাত্রা রয়েছে৷

 int[][][][] matrix = new int[2][3][4][5];

"এটা খুব কঠিন বলে মনে হচ্ছে না!"

"আপনি এখনও ম্যানুয়ালি তৈরি করার চেষ্টা করেননি! এখানে, এটিতে আপনার চোখ ভোজন করুন:

int[][][][] matrix;
matrix = new int[2][][][];                   // Create a 2-element array of references to references to references
for (int i = 0; i < matrix.length; i++)
{
  matrix[i] = new int[3][][];                // Create a 3-element array of references to references
  for (j = 0; j < matrix[i].length; j++)
  {
    matrix[i][j] = new int[4][];             // Create a 4-element array of references
    for (k = 0; k < matrix[i][j].length; k++)
      matrix[i][j][k] = new int[5];          // Create 5-element arrays of integers
  }
}

"এবং এটি কেবল একটি অ্যারে তৈরি করছে! তারপরে আপনাকে এটির সাথে কোনওভাবে কাজ করতে হবে।"

"আমি যা বলেছি তা ফিরিয়ে নিয়েছি। তাদের সাথে কাজ করা এত সহজ নয়। কিন্তু এটা সম্ভব।"

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

"ধন্যবাদ, ঋষি। আমি চেষ্টা করব।"