وبلاگ سید جلال سیدیزدی

آرایه ها در جاوا - قسمت سوم

سه شنبه, ۵ فروردين ۱۳۹۳، ۱۰:۴۳ ق.ظ

آرایه ای از آرایه ها ( آرایه چند بعدی)

آرایه چند بعدی یا multidimensional آرایه ای از آرایه هاست. به عبارت دیگر هر عنصر آرایه، خود یک آرایه است. در کد زیر یک آرایه 2 بعدی از نوع int تعریف شده است.

int [][] a = new int[3][2];

می توان گفت a آرایه ای است با طول 3 که هر عنصر آن آرایه ای از نوع int با طول 2 است. از دید دیگر a ماتریسی است که دارای 3 سطر و 2 ستون است.

برای دسترسی به عناصر یک آرایه چند بعدی، باید در هر بُعد اندیس را مشخص کرد:

a[0][0] = 1;
a[1][0] = 67;
k = a[2][1] + 38;
System.out.println(a[1][1]);

در شکل زیر دیاگرام شی برای آرایه a رسم شده است.


در شکل بالا اندیس هر عنصر در خانه مربوطه نمایش داده شده است.

پردازش آرایه 2 بعدی

برای پردازش تمام عناصر یک آرایه دو بعدی از دو حلقه تو در تو استفاده می شود:

for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
System.out.print(a[i][j]+"\t");
}
System.out.println();
}

می توان از حلقه for-each هم استفاده کرد:

for(int [] a1 : a) {
for(int k : a1) {
System.out.print(a[i][j]+"\t");
}
System.out.print();
}

تمرین: کدهای بالا به دقت تحلیل کرده سپس آنها را در BlueJ یا netbeans وارد کرده و در مد دیباگ خط به خط اجرا کنید.


آرایه چند بعدی را نیز می توان مقدار دهی اولیه کرد:

int [][] a = {
{1, 2, 3},
{4, 5, 6}
};

در کد بالا a ماتریسی با 2 سطر و 3 ستون است.


همانطور که گفته شد در جاوا آرایه چند بعدی عبارت است از آرایه ای از آرایه ها. در نتیجه نیازی نیست طول سطرها یکسان باشند. به مثال زیر که از سایت اراکل آورده شده است دقت کنید:

class MultiDimArrayDemo {
    public static void main(String[] args) {
        String[][] names = {
            {"Mr. ", "Mrs. ", "Ms. "},
            {"Smith", "Jones"}
        };
        // Mr. Smith
        System.out.println(names[0][0] + names[1][0]);
        // Ms. Jones
        System.out.println(names[0][2] + names[1][1]);
    }
}


برای آرایه های با ابعاد بیشتر باید به تعداد ابعاد، [ ] لحاظ کرد. کد زیر یک آرایه سه بعدی از نوع String تعریف می کند.

String [][][] strings = new String[2][3][4];

سوال: برای پردازش تمام عناصر یک آرایه سه بعدی چند حلقه نیاز است؟


پایان قسمت سوم

موفق باشید.


  • ۹۳/۰۱/۰۵

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی