জাভাতে 2D Array'র length বের করার ব্যাপারটা উদাহরণ সহকারে পরিষ্কার ভাবে জানতে চাচ্ছিলাম।

সাথে এই লাইনটা একটু বুঝায় দিলে উপকৃত হতাম, "A two-dimensional array is a one dimensional array in which each element is another one dimensional array".

ধন্যবাদ

asked 26 Sep '16, 18:09

sksuranjit's gravatar image

sksuranjit
8511


জাভাতে আসলে Two Dimensional Array বলে কিছু নেই। আপনি যখন

int array[][]= new int[2][2]

লিখে একটা Array তৈরি করেন তখন আসলে একটা Array create হয় যেইটার ভিতরের element গুলোও Array. নিচের example টি দেখুন...

int array[][] = new int[2][2]
array[0][0] = 1;
array[0][1] = 2;
array[1][0] = 3;
array[1][1] = 4;

এইখানে আমি একটা 2 column by 2 row Array বানিয়েছি এবং সেইগুলো তে value assign করেছি। এইটা দেখে মনে হচ্ছে আমি এই রকম একটা structure তৈরি করেছি

2dArray

তবে আসলে যেইটা হয়েছে সেইটা হচ্ছে এইরকম

array[][] = { {1,2}, {3,4} }

অর্থাৎ একটি Array এর ভিতরে আরও ২টি Array আছে।

এইবার তাহলে 2D Array এর length কিভাবে বের করবেন? array.length ব্যবহার করলে আপনি return পাবেন 2। অর্থাৎ ২ টি row আছে, এর পরে আপনি যদি আবার array[0].length কল করেন তাহলে দেখবেন আবার 2 return পাচ্ছেন। মানে এই ২ হচ্ছে column আর array[0] হচ্ছে Array এর প্রথম element।

permanent link

answered 28 Sep '16, 14:35

tahmid_choyon's gravatar image

tahmid_choyon
436

তাহলে কি আপনার উদাহরণ থেকে এরকম ধরতে পারি, আপনি যে দুই রো ওয়ালা অ্যারেটা ক্রিয়েট করছেন ঐটা আসলে দুইটা স্বতন্ত্র অ্যারে রেফারেন্স ভ্যারিয়েল হিসাবে কাজ করে যেইটা দুই এলিমেন্ট এর অ্যারের রেফারেন্স রাখবে।

(29 Sep '16, 06:18) sksuranjit

না, দুই রো ওয়ালা যেই অ্যারে বানিয়েছি সেইটা একটা অ্যারেরই রেফারেন্স ভ্যারিয়েবল হিসেবে কাজ করছে। ওইটার ভিতরে যেই দুইটা element আছে ওইগুলা আবার আরও অন্য দুইটা অ্যারের রেফারেন্স ভ্যারিয়েবল হিসেবে কাজ করছে। অ্যারের ভিতরে অ্যারে। এই কোডটা খেয়াল করুন..

class test
{
    public static void main (String[] args) throws java.lang.Exception
    {
        int[][] array = new int[2][2];

        System.out.println("Reference of the Array: " + array);
        System.out.println("Reference of the first element of the array which is also another Array: " + array[0]);
        System.out.println("The first element of the first array: " + array[0][1]);
    }
}

এইটার আউটপুট আসছে নিচের মত (আপনি এই সেইম কোড রান করলে exact এই আউটপুট আসবে না তবে এইরকম আসবে)...

Reference of the Array: [[[email protected]
Reference of the first element of the array which is also another Array: [[email protected]
The first element of the first array: 0

প্রথম দুই লাইনে ইংরেজি sentence এর পরে [[[email protected] প্রিন্ট হয়েছে, এইটাকে আপনি array ভ্যারিয়েবল এর reference বলতে পারেন। এর পরের লাইনে array[0] প্রিন্ট করা হচ্ছে এবং সেইটাতেও অনেকটা আগের মত [[email protected] প্রিন্ট হয়েছে। এইটা হচ্ছে array ভ্যারিয়েবল এর প্রথম element এর reference ভ্যারিয়েবল। এইটাও যেহেতু আরেকটি array তাই প্রিন্ট করলে সেইটার reference টা প্রিন্ট হয়েছে। তিন নাম্বার লাইনে কি হচ্ছে সেইটা আশা করছি বুঝতে পারছেন। কোন ভ্যালু initialize করা হয়নি তাই default ভ্যালু 0 প্রিন্ট হয়েছে।

permanent link

answered 29 Sep '16, 15:36

tahmid_choyon's gravatar image

tahmid_choyon
436

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×214
×4
×1

question asked: 26 Sep '16, 18:09

question was seen: 1,185 times

last updated: 29 Sep '16, 15:36