آموزش جامع برنامه نویسی جاوا به زبان ساده – بخش یازدهم: کلکسیونها


زبان جاوا چارچوب پیچیدهای به نام کلکسیون یا Collections دارد که میتواند برای ایجاد و مدیریت کلکسیونهایی از اشیا با انواع متغیر استفاده شود. اغلب برنامههای واقعی با کلکسیونی از چیزها مانند فایلها، متغیرها، رکوردهای فایلها یا کلکسیونی از پایگاههای داده مواجه هستند. در این بخش به معرفی رایجترین انواع کلاسهای کلکسیون و نحوه استفاده از آنها میپردازیم.
بخش دهم آموزش جامع برنامهنویسی جاوا: حلقهها
بخش نهم آموزش جامع برنامهنویسی جاوا: عملگرها
بخش هشتم آموزش جامع برنامهنویسی جاوا: رشتهها
آرایهها
اغلب زبانهای برنامهنویسی مفهومی به نام آرایه برای نگهداری مجموعهای از اشیا را دارند و زبان برنامهنویسی جاوا نیز از این قاعده مستثنی نیست. آرایه بهطور اساسی مجموعهای از عناصر از یک نوع است. آرایه را میتوان به دو روش اعلان کرد:
- ایجاد آرایه با اندازه مشخص که در تمام عمر آرایه ثابت است.
- ایجاد آرایه با مجموعه مشخصی از مقادیر اولیه. اندازه این مجموعه اندازه آرایه را تعیین میکند و آن قدر بزرگ است که همه آن مقادیر را نگهداری کند و اندازهاش در تمام عمر آرایه ثابت است.
اعلان یک آرایه
بهطور کلی آرایه را بهصورت زیر میتوان اعلان کرد:
new elementType [arraySize]
به دو روش میتوان آرایهای صحیح از مجموعههای مختلف ایجاد کرد.
گزاره زیر یک آرایه ایجاد میکند که فضایی برای پنج عنصر دارد اما خالی است:
// creates an empty array of 5 elements:
int[] integers = new int[5];
گزاره زیر آرایه را ایجاد میکند و همزمان مقدار اولیه عناصر را مشخص میکند:
// creates an array of 5 elements with values:
int[] integers = new int[] { 1, 2, 3, 4, 5 };
یا
// creates an array of 5 elements with values (without the new operator):
int[] integers = { 1, 2, 3, 4, 5 };
مقادیر اولیه بین آکولادها معرفی میشوند و به وسیله کاما از هم جدا میشوند.
روش دیگر برای ایجاد آرایه، ایجاد آن و سپس نوشتن حلقهای برای مقداردهی اولیه آن است:
int[] integers = new int[5];
for (int aa = 0; aa < integers.length; aa++) {
integers[aa] = aa+1;
}
کد قبلی یک آرایه از اعداد صحیح بهطول پنج عنصر ایجاد میکند. اگر بخواهیم بیش از پنج عنصر در این آرایه قرار دهیم، محیط اجرایی جاوا یک استثنا (exception) ایجاد میکند. در مورد استثناها در ادامه بیشتر توضیح خواهیم داد.

لود کردن آرایه
برای لود کردن آرایه بین مقادیر 1 و اندازه آرایه حلقهای اجرا میکنیم. در مورد مثال بالا اجرای حلقه را در تکرار 5 متوقف میکنیم.
زمانی که آرایه لود شد میتوان به آن دسترسی یافت:
Logger l = Logger.getLogger("Test");
for (int aa = 0; aa < integers.length; aa++) {
l.info("This little integer's value is: " + integers[aa]);
}
این دستورزبان هم کار میکند و (ازآنجا که کار کردن با این ساده تراست) در تمام این آموزش از این روش استفاده میشود:
Logger l = Logger.getLogger("Test");
for (int i: integers) {
l.info("This little integer's value is: " + i);
}
اندیس عنصر
میتوان آرایه را بهصورت یک سری سطل پشت سر هم در نظر گرفت که درون هر سطل عنصری با نوع خاص قرار دارد. دسترسی به هر سطل از طریق اندیس عناصر صورت میگیرد:
element = arrayName [elementIndex];
برای دسترسی به هر عنصر باید به آن آرایه (نام آن) ارجاع دهیم و سپس اندیسی که حاوی آن عنصر است را ذکر کنیم.
خصوصیت طول
هر آرایهای خصوصیت طول دارد که دارای حوزه public است و میتوان از آن برای یافتن تعداد عناصری که در آرایه جای میگیرد استفاده کرد. برای دسترسی به این خصوصیت از ارجاع به آرایه و علامت نقطه و سپس کلمه length استفاده میکنیم:
int arraySize = arrayName.length;
آرایهها در زبان جاوا از صفر شروع میشوند. یعنی در هر آرایهای نخستین عنصر آرایه همواره در اندیس صفر قرار دارد [arrayName[0 و آخرین عنصر در مکان [arrayName[arrayName.length-1 است.
آرایهای از اشیا
دیدیم که آرایهها چگونه میتوانند انواع ابتدایی را در خود جای دهند ولی لازم به ذکر است که آرایهها میتوانند اشیا را نیز در خود جای دهند. ایجاد آرایهای از اشیای java.lang.Integer تفاوت چندانی با ایجاد آرایهای از انواع ابتدایی integer ندارد و در این مورد هم به دو روش صورت میگیرد:
// creates an empty array of 5 elements:
Integer[] integers = new Integer[5];
و یا
// creates an array of 5 elements with values:
Integer[] integers = new Integer[] {
Integer.valueOf(1),
Integer.valueOf(2),
Integer.valueOf(3),
Integer.valueOf(4),
Integer.valueOf(5)
};
در بخش دوازدهم این سلسله آموزشها با مفهوم بستهبندی و بستهگشایی در زبان جاوا آشنا خواهیم شد.