آرایه ها در جاوا - قسمت اول
تعریف: آرایه شی است که تعداد ثابتی مقدار همنوع را در خود نگه می دارد. طول آرایه زمان تعریف آن تعیین می گردد و بعد از ساخته شدن طول آن ثابت است.
هر آیتم در آرایه را عنصر (element) آرایه گوییم. هر عنصر با اندیس عددی اش قابل دسترسی است. شماره گذاری اندیس آرایه مانند زبان C از صفر شروع می شود. پس عنصر شماره 9 با اندیس 8 مشخص می گردد.
قطعه کد زیر یک آرایه از نوع int با طول 4 و با نام a ایجاد کرده و عناصر آن را مقدار دهی می کند.
int [] a = new int[4];
a[0] = 1;
a[1] = 0;
a[2] = 12;
a[3] = -5;
همانطور که در قطعه کد بالا می بینید، در زمان تعریف آرایه (سمت چپ سطر اول) علامت [ ] بین نوع و اسم آرایه قرار می گیرد. به عبارت دیگر متغیر a از نوع [ ] int است. یعنی آرایه ای از نوع int. البته اگر علامت [ ] را سمت متغیر قرار دهید کمپایلر خطایی نمی دهد و آرایه به درستی تعریف می شود ولی روش اول (همانند قطعه کد) توصیه می شود.
همان طور که در کد بالا مشخص است برای دسترسی به عنصر خاصی از آرایه از الگوی زیر استفاده می کنیم.
arrayName[index]
برای مقدار دهی اولیه یک آرایه می توان به طریق زیر عمل کرد. دقت کنید مقدار دهی اولیه فقط در زمان تعریف قابل استفاده است.
int [] a = {1, 0, 12, -5};
همان طور که در تعریف آرایه گفته شد در جاوا آرایه یک شی است و در نتیجه در کد بالا a یک متغیر reference است. دیاگرام شی برای آرایه بالا در شکل زیر رسم شده است.
در قطعه کد زیر آرایه بالا را با دو روش چاپ می کنیم. روش اول با استفاده از حلقه for-each است و روش دوم با for معمولی.
// printing an array using for-each
for(int k : a){
System.out.println(k);
}
// printing an array using for
for(int i = 0; i < a.length; i++){
System.out.println(a[i]);
}
نکته اول: از for-each می توان علاوه بر پیمایش ArrayList برای پیمایش آرایه هم استفاده کرد.
نکته دوم: برای به دست آوردن طول آرایه از فیلد length استفاده می کنیم. همه ی آرایه ها به طور خودکار این فیلد را دارند. مقدار این فیلد برابر است با مقدار عددی که در زمان ایجاد آرایه به عنوان طول استفاده شده است. پس در کد بالا a.length برابر است با 4.
تمرین: کد های بالا را در BlueJ یا netbeans وارد کرده اجرا کنید. سعی کنید با debugger کد بالا را خط به خط اجرا کنید.
تمرین: آرایه هایی از انواع دیگر ایجاد کرده و مقدار دهی کنید. سپس با استفاده از دو روش بالا و همچنین با استفاده از حلقه ی while عناصر آن را چاپ کنید.
تمرین های بالا از نوع مثلث برعکس است.
پایان قسمت اول.
موفق باشید.
- ۹۲/۱۲/۲۶