معرفی آرایه های چند بعدی در زبان برنامه نویسی جاوا

سیده آمین ارمان

کاربر نگاه دانلود
کاربر نگاه دانلود
عضویت
2016/05/10
ارسالی ها
1,730
امتیاز واکنش
20,744
امتیاز
795
محل سکونت
البرز
همان طور که در آموزش قبل توضیح داده شد، آرایه ها به منظور ذخیره سازی داده هایی مورد استفاده قرار می گیرند که همگی به یک نوع خاص اختصاص دارند. حال چنانچه تعداد Element ها یا همان مواردی که در یک آرایه قرار می گیرند خیلی زیاد نباشند می توان نحوه نوشتن آرایه را تغییر داد تا کد ما خلاصه تر گردد. در حقیقت روشی که در جلسه ی قبل توضیح داده شد برای مواردی کاربرد دارد که تعداد عناصر آرایه ها بسیار زیاد باشند مثلا ۲۰۰ مورد یا بیشتر.

به منظور خلاصه نویسی آرایه ها در ابتدا یک پروژه جدید تحت عنوان Multidimensional Arrays به معنی "آرایه های چند بعدی" ایجاد کرده و کلاسی با نام StuffToBuy به معنی "چیزهایی که بایستی خریداری شود" داخل آن می سازیم. سپس یک آرایه از جنس String در آن ایجاد می کنیم و نام آن را items به معنی "موارد" می گذاریم. در این مرحله، سورس کد ما می بایست به صورت زیر باشد:

public class StuffToBuy {
public static void main(String[] args) {
String[] items = {};
}
}
همان طور که ملاحظه می شود در آموزش پیشین نحوه ساخت یک آرایه به این صورت بود که پس از علامت مساوی از کلید واژه ی new استفاده کرده سپس مجدداً نوع متغیر را نوشته و داخل علامت های [ ] تعداد Element هایی را نوشته که می خواهیم داشته باشیم. اما از آنجا که در این مثال می خواهیم عددی را تعریف نکرده و مستقیماً نام Element ها یا عناصر تشکیل دهنده آرایه را وارد کنیم از علامت های { } پس از مساوی استفاده می کنیم. حال فرض کنیم که نیاز داریم تا نان، پنیر، کره، چای، سیب زمینی، گوجه، پیاز، قهوه، دوغ و آب معدنی در لیست خرید ما باشد. برای این منظور کد فوق را به شکل زیر تکمیل می کنیم:

public class StuffToBuy {
public static void main(String[] args) {
String[] items = {"Bread", "Cheese", "Butter", "Tea", "Potato",
"Tomato", "Onion", "Coffe", "Yogurt Drink", "Mineral Water"};
}
}
در واقع از آنجایی که عناصر تشکل دهنده آرایه ما از جنس استرینگ هستند، از اینرو نیاز است تا این عناصر را داخل علامت های " " قرار دهیم و آن ها را با یک کاما از یکدیگر جدا سازیم. چنانچه بخواهیم نام یکی از این عناصر را روی صفحه نمایش نشان دهیم صرفاً لازم است تا در دستور ;()System.out,println نام آرایه را نوشته و داخل علامت های [ ] شماره مورد مد نظر را بنویسیم. به طور مثال در لیست فوق اگر بخواهیم واژه ی Butter به معنی کره را در پنجره ی کنسول به نمایش در آوریم، صرفاً نیاز است تا عبارت [items[2 را داخل دستور ;()System.out,println بنویسیم (در واقع از آنجا که شمارش این عناصر از صفر شروع می شود، نیاز است تا عدد 2 را وارد کنیم و چنانچه عدد 3 را وارد نماییم، واژه ی Tea نمایش داده خواهد شد.) در این مرحله از کار، کد تکمیل شده ی ما به شکل زیر خواهد بود:

public class StuffToBuy {
public static void main(String[] args) {
String[] items = {"Bread", "Cheese", "Butter", "Tea", "Potato",
"Tomato", "Onion", "Coffe", "Yogurt Drink", "Mineral Water"};
System.out.println(items[2]);
}
}
پس از اجرای برنامه، واژه ی Butter در پنجره ی کنسول به نمایش در خواهد آمد:



اگر چه که تعداد عناصر ما ده عدد است، اما اگر بخواهیم مورد شماره ده که Mineral Water به معنی آب معدنی است را روی صفحه به نمایش در آوریم، می بایست عدد 9 را داخل [ ] وارد نماییم. و این در صوتی است که اگر عدد 10 را وارد نماییم، برنامه در حین کامپایل شدن از ما ایراد خواهد گرفت و ارور IndexOutOfBoundsException به معنی این که شماره وارد شده خارج از محدوده ی تعریف شده است نمایش داده خواهد شد.


نحوه شمردن تعداد Element ها داخل یک آرایه
چنانچه بخواهیم تعداد عناصری را که از این طریق وارد برنامه خود کرده ایم را شمارش کنیم، از متدی به اسم length استفاده می کنیم. برای این منظور کد فوق را به شکل زیر بازنویسی خواهیم کرد:

public class StuffToBuy {
public static void main(String[] args) {
String[] items = {"Bread", "Cheese", "Butter", "Tea", "Potato",
"Tomato", "Onion", "Coffe", "Yogurt Drink", "Mineral Water"};
System.out.println(items.length);
}
}
در واقع فقط نیاز است تا در دستور ;()System.out.println نام آرایه را نوشته و متد lenght را ضمیمه آن نماییم. حال پس از اجرای برنامه، تعداد عناصر داخل آرایه ما که معادل با 10 مورد است نمایش داده خواهد شد:



نحوه ایجاد Multidimensional Arrays
به طور خلاصه، یک آرایه برای ذخیره سازی داده ها در یک Dimension یا "بعد" استفاده می شود. حال اگر بخواهیم که یک آرایه ای ایجاد کنیم که چند بعدی باشد -به طور مثال، آرایه یی که در برگیرنده ستون و ردیف یک جدول باشد- می بایست از Multidimensional Arrays یا آرایه های چند بعدی استفاده کنیم. مثالی که این گونه آرایه ها در آن کاربرد فراوانی دارد نمودارهایی با محور های x و y می باشد. برای روشن شدن این مسئله، یک کلاس جدید تحت عنوان MultidimensionalArray ایجاد می کنیم و به شکل زیر آن را تکمیل می کنیم:

public class MultidimensionalArray {
public static void main(String[] args) {
int[] row = {};
}
}
در حقیقت این کد نشانگر یک آرایه تک بعدی یا عادی است. حال اگر بخواهیم آن را به یک آرایه چند بعدی تبدیل نماییم، می بایست آن را به شکل زیر تغییر دهیم:

public class MultidimensionalArray {
public static void main(String[] args) {
int[][] row = {{},{}};
}
}
به عبارت دیگر تنها با اضافه کردن یک جفت علامت [ ] دیگر پس از نوع آرایه و همچنین اضافه کردن دو جفت علامت های { } دیگر داخل علامت { } که پس از علامت مساوی قرار دارد و مجزا کردن آن ها از یکدیگر به وسیله یک کاما، ما یک آرایه دو بعدی ایجاد خواهیم کرد. حال کد فوق را به شکل زیر با اعدادی دلخواه تکمیل می کنیم:

public class MultidimensionalArray {
public static void main(String[] args) {
int[][] row = {{10, 20, 30}, {100, 200, 300}};
}
}
همان طور که مشاهده می شود، در آرایه دو بعدی فوق ما دو ردیف داریم که ردیف اول حاوی اعداد 10 و 20 و 30 است و ردیف دوم حاوی اعداد 100 و 200 و 300 است. حال نحوه فراخوانی یک عدد مد نظر از این آرایه دو بعدی به این شکل است که در کد زیر مشاهده می شود:

public class MultidimensionalArray {
public static void main(String[] args) {
int[][] row = {{10, 20, 30}, {100, 200, 300}};
System.out.println(row[0][1]);
}
}
در حقیقت در دستور ;()System.out.println نام آرایه را نوشته و از آنجا که آرایه ما دو بعدی است پس دو جفت از علامت های [ ] مقابل آن قرار می دهیم. همان طور که قبلاً توضیح داده شد، شمارش آرایه ها از صفر آغاز می شود و در این مثال هم ما دو ردیف بیشتر نداریم ردیف اول که {10,20,30} است و ردیف دوم که {100,200,300} می باشد و از آنجا که شمارش در آرایه ها از صفر آغاز می شود پس عدد اختصاص داده شده به ردیف اول صفر خواهد بود و عدد اختصاص داده شده به ردیف دوم یک است. در ردیف اول ما سه Element یا عنصر داریم که عدد 10 جایگاه صفر را دارا است، عدد 20 جایگاه یک و در نهایت عدد 30 جایگاه دو را دارا است. حال اگر بخواهم از ردیف اول عدد دوم را در پنجره ی کنسول به نمایش در آوریم، صرفاً نیاز است تا در دستور ;()System.out.println پارامتر [row[0][1 را وارد کنیم. پس از اجرای برنامه خروجی زیر را خواهیم دید:



به نظر می رسد با توضیحات فوق کاملاً این مسئله روشن شده باشد. حال برای آن که تمرین دیگری انجام داده باشیم قصد داریم تا از ردیف دوم عدد آخر که عدد 300 است را به نمایش درآوریم. از آنجا که عدد اختصاص داده شده به ردیف دوم در این آرایه عدد یک است و از آن جا که عدد اختصاص داده شده به آخرین عدد ردیف دوم، عدد دو است، پس کد خود را به شکل زیر بازنویسی می کنیم:

public class MultidimensionalArray {
public static void main(String[] args) {
int[][] row = {{10, 20, 30}, {100, 200, 300}};
System.out.println(row[1][2]);
}
}
پس از اجرای برنامه خروجی زیر مشاهده خواهد شد:



در آموزش بعد، با نحوه ی Sort کردن یا مرتب کردن عناصر داخل آرایه ها آشنا خواهیم شد. لازم به ذکر است به منظور درک بهتر مطالب آموزشی جلسه آتی، آشنایی با مقدمات آرایه ها و همچنین آشنایی با نحوه ی به کارگیری حلقه ها ضروری است.
 

برخی موضوعات مشابه

بالا