آموزش آرایه در جاوا
آرایه در جاوا شیءای با اندازه ثابت برای ذخیره چند داده همنوع است. عناصر با اندیس از ۰ تا length-۱ قابل دسترسی هستند.
آرایه در جاوا (Java) چیست؟
آرایه در جاوا یک ظرف یا محفظه است که میتواند چندین مقدار از همان نوع داده را در خود ذخیره کند.هر مقدار در آرایه یک عنصر نام دارد و هر عنصر با یک شماره که اندیس (index) نامیده میشود، قابل دسترسی است.
اندیس آرایه در جاوا از صفر شروع میشود.
به عبارت سادهتر، اگر بخواهید نمرات ۳۰ دانشآموز را در برنامه خود ذخیره کنید، به جای تعریف ۳۰ متغیر جداگانه، یک آرایه به طول ۳۰ تعریف میکنید و همه نمرات را در آن قرار میدهید.
مثال ساده:
int[] numbers = {10, 20, 30, 40, 50};
System.out.println(numbers[0]); // خروجی: 10
System.out.println(numbers[2]); // خروجی: 30
در این مثال، یک آرایه از اعداد صحیح داریم. عدد اول (با اندیس ۰) مقدار ۱۰ و عدد سوم (با اندیس ۲) مقدار ۳۰ است.
مزایای آرایه در جاوا
استفاده از آرایه در برنامهنویسی مزایای قابل توجهی دارد که در ادامه به مهمترین آنها اشاره میکنیم.۱. مدیریت آسان دادههای متعدد
با استفاده از آرایه، میتوانید صدها یا هزاران داده را با یک نام متغیر مدیریت کنید. بدون آرایه، شما مجبور به تعریف صدها متغیر جداگانه هستید که کار غیرممکنی است.۲. دسترسی سریع با استفاده از اندیس
دسترسی به هر عنصر آرایه با استفاده از اندیس آن، بسیار سریع و در زمان ثابت انجام میشود. فرقی نمیکند اولین عنصر را بخواهید یا آخرین عنصر را، زمان دسترسی یکسان است.۳. ذخیرهسازی پشت سر هم در حافظه
عناصر آرایه به صورت پشت سر هم در حافظه ذخیره میشوند که این موضوع باعث افزایش سرعت دسترسی و پردازش میشود.۴. پیمایش آسان با حلقهها
آرایهها به راحتی با حلقههای for و while قابل پیمایش هستند. میتوانید در یک حلقه کوتاه، به تمام عناصر آرایه دسترسی پیدا کنید و روی آنها عملیات انجام دهید.۵. قابلیت استفاده در متدها
آرایهها را میتوان به عنوان پارامتر به متدها ارسال کرد و متدها نیز میتوانند آرایه را به عنوان خروجی برگردانند.۶.حافظه نسبت به متغیرهای جداگانه
تعریف یک آرایه نسبت به تعریف دهها متغیر جداگانه، حافظه کمتری مصرف میکند و مدیریت حافظه را بهینهتر میکند.
ویژگیهای آرایه در جاوا
آرایهها در جاوا ویژگیهای خاصی دارند که درک آنها برای برنامهنویسی صحیح ضروری است.۱. اندازه ثابت
پس از ایجاد یک آرایه، اندازه آن قابل تغییر نیست.اگر آرایهای با طول ۱۰ بسازید، نمیتوانید عنصر یازدهمی به آن اضافه کنید.
برای داشتن اندازه متغیر باید از ArrayList استفاده کنید.
۲. همگن بودن (همان نوع بودن)
همه عناصر یک آرایه باید از یک نوع داده باشند. نمیتوانید در یک آرایه از اعداد صحیح، اعشاری و رشتهها را با هم قرار دهید.۳. اندیسگذاری از صفر
اولین عنصر هر آرایه در اندیس ۰ قرار دارد. آخرین عنصر در اندیس length-1 قرار میگیرد.۴. شیء بودن در جاوا
در جاوا، آرایه یک شیء محسوب میشود و از کلاس Object ارثبری میکند.به همین دلیل، آرایهها دارای خاصیت length هستند که طول آرایه را نشان میدهد.
۵. بررسی اندیس در زمان اجرا
جاوا در زمان اجرا بررسی میکند که آیا اندیسی که به آرایه میدهید معتبر است یا نه.اگر اندیس خارج از محدوده باشد، استثنای ArrayIndexOutOfBoundsException رخ میدهد.
۶. مقدار پیشفرض عناصر
وقتی آرایهای ساخته میشود اما مقداردهی نمیشود، عناصر آن به صورت خودکار مقدار پیشفرض میگیرند.برای آرایه اعداد صحیح، مقدار پیشفرض 0 و برای آرایه اشیاء، مقدار پیشفرض null است.
int[] arr = new int[5];
System.out.println(arr[0]); // خروجی: 0

معایب استفاده از آرایه
با وجود مزایای زیاد، آرایهها معایبی نیز دارند که باید از آنها آگاه باشید.۱. اندازه ثابت و غیرقابل تغییر
بزرگترین عیب آرایهها این است که اندازه آنها پس از ایجاد قابل تغییر نیست.
اگر تعداد عناصر شما بیشتر از طول آرایه شود، نمیتوانید عنصر جدید اضافه کنید.
برای حل این مشکل باید آرایه بزرگتری بسازید و عناصر قدیمی را به آن کپی کنید.
۲. فقط ذخیرهسازی نوع یکسان
آرایهها فقط میتوانند یک نوع داده خاص را ذخیره کنند.
اگر نیاز به ذخیره انواع مختلف داده دارید، آرایه به کار شما نمیآید.
۳. درج و حذف دشوار
درج یک عنصر در وسط آرایه یا حذف آن، نیاز به جابهجایی سایر عناصر دارد و عملیات نسبتاً سنگینی است.۴. عدم وجود متدهای کمکی
آرایهها متدهای داخلی برای عملیات رایج مانند جستجو، مرتبسازی یا کپی کردن ندارند و باید خودتان این عملیات را پیادهسازی کنید (یا از کلاس Arrays استفاده کنید).۵. خطر خطای خارج از محدوده
اگر در زمان برنامهنویسی دقت نکنید و به اندیس خارج از محدوده آرایه دسترسی پیدا کنید، برنامه شما با خطا مواجه میشود و متوقف میگردد.
🚀 از صفر تا قهرمان جاوا، فقط با یک دوره!
به دنبال یه فرصت طلایی برای شروع برنامهنویسی میگردی؟
دوره آموزشی جاوا ما، همون چیزیه که نیاز داری!✨ چرا این دوره رو انتخاب میکنی؟
🎯 از مبتدی تا حرفهای
بدون پیشزمینه شروع میکنی و به یه برنامهنویس جاوا تبدیل میشی که بازار کار منتظرته!🛠 پروژهمحور و عملی
با انجام پروژههای واقعی، کدنویسی رو یاد میگیری، نه فقط تئوری!👨🏫 پشتیبانی همیشگی
هرجا گیر کنی، تیم پشتیبانی کنارته تا مشکلت حل بشه.🔓 دسترسی مادامالعمر
هر وقت خواستی به محتوا دسترسی داری، برای همیشه!
نحوه تعریف آرایه در جاوا
در جاوا، دو روش اصلی برای تعریف و ساخت آرایه وجود دارد.روش اول: تعریف و مقداردهی همزمان
در این روش، آرایه را یکجا تعریف و مقداردهی میکنید. نیازی به مشخص کردن طول نیست زیرا جاوا خودش طول را از تعداد مقادیر تشخیص میدهد.// آرایه از اعداد صحیح
int[] ages = {25, 30, 35, 40, 45};
// آرایه از رشتهها
String[] names = {"علی", "رضا", "سارا", "مریم"};
// آرایه از اعداد اعشاری
double[] prices = {12500.5, 34000.0, 8750.75};
روش دوم: تعریف با کلمه کلیدی new
در این روش، ابتدا آرایه را با اندازه مشخص میسازید و سپس در خطوط بعدی به آن مقدار میدهید.// ساخت آرایه با ۵ خانه
int[] numbers = new int[5];
// مقداردهی به هر خانه
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;
روش سوم: تعریف جداگانه و سپس ساخت
میتوانید ابتدا متغیر آرایه را تعریف کنید و بعد در خط جداگانهای آن را بسازید.// تعریف متغیر آرایه
int[] scores;
// ساخت آرایه و اختصاص به متغیر
scores = new int[8];

حرف اول: نحوه نوشتن علامت []
علامت [] را میتوانید قبل یا بعد از نام متغیر بنویسید. هر دو روش صحیح است:int[] numbers; // روش متداول و توصیه شده
int numbers[]; // روش دیگر (درست اما کمتر استفاده میشود)
نحوه استفاده از آرایه
بعد از اینکه آرایه را تعریف و مقداردهی کردید، نوبت به استفاده از آن میرسد.در ادامه مهمترین کارهایی که با آرایه میتوان انجام داد را آموزش میدهیم.
۱. دسترسی به عناصر آرایه
برای دسترسی به یک عنصر خاص در آرایه، از نام آرایه به همراه اندیس مورد نظر در کروشه استفاده میکنید.int[] numbers = {100, 200, 300, 400, 500};
// دسترسی به عنصر اول (اندیس 0)
int first = numbers[0]; // مقدار 100
// دسترسی به عنصر سوم (اندیس 2)
int third = numbers[2]; // مقدار 300
// دسترسی به عنصر آخر (اندیس length-1)
int last = numbers[numbers.length - 1]; // مقدار 500
۲. تغییر مقدار عناصر
برای تغییر مقدار یک عنصر، کافی است در سمت راست تساوی، مقدار جدید را قرار دهید.int[] scores = {15, 18, 20, 17};
// تغییر عنصر دوم (اندیس 1) از 18 به 19
scores[1] = 19;
// تغییر عنصر آخر از 17 به 20
scores[3] = 20;
// حالا آرایه به این شکل است: {15, 19, 20, 20}
۳. پیمایش آرایه با حلقه for
رایجترین روش برای کار با آرایه، استفاده از حلقه for است.int[] numbers = {5, 10, 15, 20, 25};
// پیمایش از اول تا آخر
for (int i = 0; i < numbers.length; i++) {
System.out.println("عنصر " + i + " = " + numbers[i]);
}
۴. پیمایش با حلقه for-each (پیشرفته)
جاوا یک حلقه مخصوص برای پیمایش آرایهها دارد که به آن for-each میگویند. این حلقه کوتاهتر و خواناتر است.int[] numbers = {5, 10, 15, 20, 25};
// پیمایش با حلقه for-each
for (int num : numbers) {
System.out.println("مقدار = " + num);
}
۵. محاسبه جمع عناصر آرایه
int[] scores = {18, 19, 20, 17, 20};
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum = sum + scores[i];
}
System.out.println("مجموع نمرات: " + sum); // خروجی: 94
۶. پیدا کردن بزرگترین مقدار در آرایه
int[] numbers = {23, 45, 12, 78, 34, 56};
int max = numbers[0]; // فرض کنیم اولی بزرگترین است
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
System.out.println("بزرگترین مقدار: " + max); // خروجی: 78
۷. جستجوی یک مقدار در آرایه
int[] numbers = {10, 20, 30, 40, 50};
int searchValue = 30;
boolean found = false;
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] == searchValue) {
found = true;
System.out.println("مقدار در اندیس " + i + " پیدا شد");
break;
}
}
if (!found) {
System.out.println("مقدار پیدا نشد");
}
آرایه چندبعدی در جاوا
تا اینجا با آرایههای یکبعدی کار کردیم. اما جاوا از آرایههای دو بعدی و حتی بیشتر نیز پشتیبانی میکند.آرایه دو بعدی را میتوان مانند یک جدول با سطر و ستون تصور کرد.
تعریف آرایه دو بعدی
// روش اول: مقداردهی همزمان
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// روش دوم: با new
int[][] table = new int[3][4]; // 3 سطر، 4 ستون
دسترسی به عناصر آرایه دو بعدی
int[][] matrix = {
{1, 2, 3},
{4, 5, 6}
};
System.out.println(matrix[0][1]); // سطر اول، ستون دوم = 2
System.out.println(matrix[1][2]); // سطر دوم، ستون سوم = 6
پیمایش آرایه دو بعدی
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (int i = 0; i < matrix.length; i++) { // پیمایش سطرها
for (int j = 0; j < matrix[i].length; j++) { // پیمایش ستونها
System.out.print(matrix[i][j] + " ");
}
System.out.println(); // رفتن به سطر بعدی
}
خروجی:
1 2 3
4 5 6
7 8 9
کار با خاصیت length در جاوا
هر آرایه در جاوا یک خاصیت به نام length دارد که طول آرایه را نشان میدهد.int[] numbers = {10, 20, 30};
System.out.println(numbers.length); // خروجی: 3
String[] names = {"علی", "رضا", "سارا", "مریم", "زهرا"};
System.out.println(names.length); // خروجی: 5
نکته مهم: length برای آرایهها یک خاصیت است (بدون پرانتز)، در حالی که برای رشتهها ()length یک متد است (با پرانتز). این دو را اشتباه نگیرید.
کلاس Arrays و متدهای مفید آن
جاوا یک کلاس به نام Arrays در بسته java.util دارد که شامل متدهای مفیدی برای کار با آرایهها است.import java.util.Arrays;
public class ArraysDemo {
public static void main(String[] args) {
int[] numbers = {5, 2, 8, 1, 9};
// مرتبسازی آرایه
Arrays.sort(numbers);
System.out.println(Arrays.toString(numbers)); // [1, 2, 5, 8, 9]
// جستجوی دودویی (قبل از آن آرایه باید مرتب شده باشد)
int index = Arrays.binarySearch(numbers, 5);
System.out.println("اندیس عدد 5: " + index); // 2
// پر کردن آرایه با یک مقدار
int[] arr = new int[5];
Arrays.fill(arr, 10);
System.out.println(Arrays.toString(arr)); // [10, 10, 10, 10, 10]
// کپی کردن آرایه
int[] copy = Arrays.copyOf(numbers, numbers.length);
// مقایسه دو آرایه
boolean isEqual = Arrays.equals(numbers, copy);
System.out.println("آیا مساوی هستند؟ " + isEqual); // true
}
}
اشتباهات رایج با آرایه در جاوا
۱. دسترسی به اندیس خارج از محدوده
int[] numbers = new int[3];
numbers[3] = 10; // خطا! آخرین اندیس مجاز 2 است
۲. فراموش کردن اینکه اندیس از صفر شروع میشود
int[] numbers = {10, 20, 30};
// عنصر اول numbers[0] است نه numbers[1]
۳. مقایسه آرایهها با ==
int[] a = {1, 2, 3};
int[] b = {1, 2, 3};
// این کار درست نیست:
if (a == b) { } // همیشه false میدهد
// روش درست:
if (Arrays.equals(a, b)) { } // true
جمعبندی
آرایهها یکی از پایهایترین و پرکاربردترین ساختارهای داده در زبان جاوا هستند. در این مقاله یاد گرفتیم که آرایه ظرفی است برای ذخیره چندین مقدار از یک نوع داده. اندیسگذاری در آرایه از صفر شروع میشود و اندازه آرایه پس از ساخت قابل تغییر نیست.از مهمترین مزایای آرایه میتوان به مدیریت آسان دادههای متعدد، دسترسی سریع با اندیس، و پیمایش آسان با حلقهها اشاره کرد. در مقابل، معایبی مانند اندازه ثابت و مشکل بودن عملیات درج و حذف را نیز دارد.
برای تعریف آرایه دو روش اصلی داریم: مقداردهی همزمان با کروشه و ساخت با کلمه کلیدی new. همچنین آرایههای دو بعدی برای کار با دادههای جدولی بسیار مفید هستند.
برای کارهای پیشرفتهتر با آرایه، کلاس Arrays متدهای مفیدی مانند ()sort()، binarySearch و () equals را در اختیار ما قرار میدهد.
تسلط بر آرایهها، قدم مهمی در مسیر یادگیری برنامهنویسی جاوا است و در تمام پروژههای واقعی به آن نیاز خواهید داشت.



کاربران ما
شما هم نظرتون با ما دریاره “آموزش آرایه در جاوا” اشتراک بزارید
برای ارسال نظر لطفا ورود یا ثبت نام کنید