تعریف آرایه در جاوا
از آرایه در جاوا برای نگهداری تعداد متناهی از متغیر های هم نوع استفاده میکنیم. و به متغیر های آرایه عنصر (element) میگیم.
از آرایه در جاوا برای نگهداری n متغیر از نوع یکسان استفاده میکنیم.
متغیر های یک آرایه میتونن از نوع Primitive یا Object باشن.
آرایه در جاوا یک آبجکت با ظاهری متفاوت است؛ وقتی یک آرایه به طول n ایجاد میکنیم در واقع n تا فیلد از نوع متغیر داخل آرایه به صورت خودکار ایجاد میشه.
به تعداد متغیر هایی که یک آرایه میتونه در خودش نگهداره طول آرایه میگیم؛ هنگامی که یک آرایه n تا متغیر در خودش نگهداری میکنه میگیم طول آرایه n است.
طول آرایه در جاوا ثابت است و هنگام ایجاد آرایه یک فیلد به اسم length به طور خودکار ایجاد میشه که مقدار این فیلد طول آرایه است.
فرض کنید میخواید ۷ تا متغیر int تعریف و در برنامه استفاده کنید برای این کار باید مثل زیر عمل کنید:
این کار ممکنه وقت گیر باشه و کد های برنامه رو زیاد کنه مخصوصا زمانی که تعداد متغیر ها زیاد باشن.
میتونیم از آرایه برای راحت تر کردن کار استفاده کنیم:
در بالا یک آرایه به طول 7 تعریف کردیم؛ این آرایه 7 تا فیلد از جنس int داره که هر فیلد به ترتیب مقادیر 7, 4, 2, 8, 9, 1 و 3 رو در خودش ذخیره کرده.
در تصویر زیر ساختار یک آرایه به طول ۷ رو میتونید مشاهده کنید:

طول آرایه 7 است؛ یعنی 7 تا فیلد از نوع متغیر در آرایه ایجاد شده و میتونیم به هر فیلد یک مقدار دلخواه اختصاص بدیم. به این فیلد ها به طور عامیانه خونه های هر متغیر در آرایه میگیم.
طول آرایه ثابته یعنی تعداد خونه های آرایه تغییر نمیکنه اما مقادیر هر خونه قابل تغییر است.
هر خونه میزبان یک مقدار است؛ برای صدا زدن مقدار مورد نظر، باید شماره خونه ی مرتبط با اون مقدار رو بنویسیم.
در یک آرایه به طول n شماره ی خونه ها از 0 شروع میشه و شماره ی آخرین خونه n -1 است.
مثال:
در مثال زیر میخوایم عدد 9 رو در آرایه صدا بزنیم. عدد 9 در خونه ی چهارم قرار داره.
توجه
اگه عددی که به عنوان شماره خونه ی آرایه در نظر گرفته باشیم، خارج از شماره خونه های آرایه باشه، زمان اجرا برنامه دچار خطا میشه.
با کمک length در آرایه میتونیم طول آرایه رو به دست بیاریم.
روش های ایجاد آرایه در جاوا
آرایه در جاوا آبجکت با ظاهری متفاوت است.
در جاوا میتونیم آرایه رو به دو روش ایجاد کنیم.
1- میتونیم مثل قسمت قبل یک ارایه ساخته و مقادیر رو هنگام ایجاد آرایه به خونه های مورد نظر اختصاص بدیم.
برای صدا زدن تمام اعضای یک آرایه میتونیم از حلقه ی for استفاده کنیم.
در بالا i از صفر شروع میشه و ابتدا خونه ی شماره ی 0 رو بر میگردونه و با تکرار حلقه یک واحد به i اضافه شده و میره سراغ خونه ی شماره بعد. حلقه تا زمانی که مقدار i کمتر از شماره ی اخرین خونه است تکرار میشه.
علاوه بر for میتونیم از foreach برای صدا زدن اعضای یک ارایه استفاده کنیم.
2- میتونیم آرایه رو ایجاد و بعدا در برنامه هر خونه در آرایه رو مقدار دهی کنیم.
در این روش آرایه بعد از به وجود اومدن دارای مقادیر پیشفرض است و بعدا در برنامه میتونیم مقادیر آرایه رو تغییر بدیم.
چون آرایه یک آبجکت است و اعضای یک آرایه در واقع فیلد های آبجکت هستند مقادیر پیشفرض اعضای یک آرایه ی ایجاد شده همان مقادیر پیشفرض فیلد های یک کلاس در جاواست.
هنگامی که یک آرایه با مقادیر پیشفرض ایجاد میکنیم؛ اگه آرایه از نوع boolean باشه مقادیر پیشفرض آن false است؛ اگه آرایه از نوع عددی باشه (int, long, double, ...) مقادیر پیشفرض آن 0 است و اگه آرایه از نوع آبجکت باشه مقادیر پیشفرض null است.
مثال:
مثال
در بالا برای نشون دادن اعضای آرایه از کلاس Arrays استفاده کردیم؛ این کلاس متد های کمکی خوبی از جمله (binarySearch و ...) داره که به عنوان ابزار میتونیم ازشون برای ارایه استفاده کنیم.
مثال:
در مثال زیر میخوایم کاربر آرایه رو مقداردهی کنه و سپس مقادیر ذخیره شده در آرایه رو نمایش بدیم.
مثال:
در مثال زیر برنامه مقادیر خونه های فرد در آرایه رو نمایش میده.
مثال:
کلاس Arrays
در کلاس آرایه یک سری متد های استاتیک پر کاربرد تعریف شده که برای آرایه ها استفاده میشن.
در این قسمت یه سری از متد های پرکاربرد این کلاس رو بررسی میکنیم.
متد binarySearch
با متد binarySearch میتونیم داخل یک آرایه به جستجوی شماره خونه ی مقدار مورد نظر در آرایه بگردیم اگه این مقدار وجود نداشته باشه -1 رو بر میگردونه.
toString متد
با toString میتونیم اعضای آرایه رو بدون نیاز به بررسی خونه های ارایه نمایش بدیم.
sort متد
با متد sort میتونیم اعضای ارایه رو از کم به زیاد مرتب کنیم.
متد asList
با متد asList میتونیم یک لیست از مقادیر دلخواه درست کنیم.
آرایه های چند بعدی
عناصر یک آرایه میتونن آرایه باشند.
آرایه هایی که تا اینجا باهاشون آشنا شدیم یک بعدی بودن این در حالیه که میتونیم آرایه های دو بعدی یا چند بعدی در جاوا ایجاد کنیم.
گفتیم آرایه یک آبجکت است پس میتونیم یک آرایه از نوع آرایه ایجاد کنیم که به این آرایه دو بعدی میگیم.
در زیر طول آرایه اول ۳ است، این آرایه آبجکت فرض شده و آرایه ای به طول ۴ از نوع این آرایه به وجود آوردیم.
میتونیم آرایه های دو بعدی رو مانند آرایه یک بعدی هنگام تعریف مقداردهی کنیم.
در بالا آرایه ای به طول ۴ ایجاد کردیم که تمام عناصر آن آرایه ای به طول ۳ است و عناصر آرایه هایی که به طول ۳ ایجاد کردیم int است.
برای خوندن عناصر آرایه های دو بعدی توسط حلقه مانند زیر عمل میکنیم.
در بالا i در حلقه ی اولی عناصر آرایه به طول 4 رو بررسی میکنه که هر عنصر آرایه ای به طول 3 است. و سپس داخل حلقه ی دوم با j عناصر آرایه به طول 3 رو که از نوع int هستند بررسی میکنیم.
هنگام تعریف آرایه دو بعدی از طریق مقداردهی عناصر، لزومی نداره طول عناصر که خود یک آرایه هستند یکسان باشه.
مثال
فرض کنید 6 دانش آموز در یک امتحان ۴ گزینه ای شرکت کردن و میخوایم نمره هاشونو با توجه به پاسخنامه حساب کنیم.
مثال
در برنامه زیر ابتدا کاربر تعداد نقاط صفحه رو مشخص میکنه بعد مختصات هر نقطه روی صفحه رو وارد میکنه و در آخر برنامه نزدیک ترین نقاط به همدیگه رو نمایش میده.
اگه یک آرایه دو بعدی رو آبجکت در نظر بگیریم میتونیم با ایجاد آرایه ای از نوع آرایه دو بعدی یک آرایه سه بعدی ایجاد کنیم.
خلاصه
- از آرایه ها در جاوا برای نگهداری n تا متغیر هم نوع استفاده میکنیم.
- آرایه در واقع نوعی از آبجکت است با ظاهری متفاوت و خاص.
- متغیر های داخل آرایه در واقع دیتافیلد های آرایه هستند.
- به متغیر های داخل آرایه عنصر (element) میگیم و در واقع این متغیر ها دیتا فیلد های آرایه هستند.
- به تعداد عناصر داخل آرایه طول آرایه میگیم و این طول رو با متد length میتونیم صدا بزنیم.
مانند سایر آبجکت ها اگه عناصر آرایه مقداردهی نشن دارای مقادیر پیشفرض هستند.
- کلاس Arrays دارای متد های استاتیک کمک برای آرایه ها است.
- میتونیم یک آرایه رو آبجکت در نظر بگیریم و با ایجاد آرایه ازش یک آرایه دو بعدی ایجاد کنیم.
- در مورد آرایه سه بعدی نیز میتونیم یک آرایه دو بعدی رو آبجکت در نظر بگیریم و یک آرایه از نوع آرایه دو بعدی ایجاد کنیم. و به همین ترتیب...