آشنایی با مفهوم آرایه در زبان برنامه‌نویسی جاوا


در این آموزش به معرفی مفهوم Array یا «آرایه‌» و نحوۀ به‌کارگیری آن‌ به منظور ذخیرۀ داده‌های مورد نیاز در زبان برنامه‌نويسی جاوا می‌پردازیم. به طور کلی، آرایه‌ها در زبان جاوا به منظور ذخیره و نگهداری مجموعه‌ای از داده‌هایی با دیتا تایپ یکسان همچون داده‌هایی از جنس int یا عدد صحیح به کار می‌روند. در واقع، می‌توانیم با استفاده از آرایه‌ها به جای تعریف چندین متغیر و اختصاص داده‌های مورد نیاز به هر یک از آن‌ها، یک متغیر تعریف کرده و مجموعۀ داده‌های مورد نظر خود را بدان اختصاص دهیم که در چنین شرایطی یک متغیر قادر بر نگهداری گروهی از داده‌هایی با دیتا تایپ یکسان می‌باشد.

در ادامه، به منظور آشنایی با کاربرد آرایه‌ها در زبان جاوا سناریویی بدین صورت تعریف می‌کنیم که در آن بتوانیم نام دوستان و آشنایان و شماره‌ تلفن مرتبط با ایشان را ذخیره کنیم و به اصطلاح یک دفترچۀ تلفن کوچک طراحی نماییم که به منظور کوتاه شدن سورس‌کد در این آموزش، صرفاً نام سه نفر از افراد فرضیِ مورد نظر خود را ذخیره خواهیم کرد.

چنانچه فرض کنیم که نام و شماره‌ تلفن دوستان خود را بدون استفاده از آرایه در برنامۀ خود ذخیره کنیم، برای نگهداری شماره‌ تلفن نیاز به تعریف سه متغیر با استفاده از دیتا تایپ int و برای تعریف نام افراد هم نیاز به ساخت سه آبجکت از روی کلاس String داریم اما این در حالی است که با به‌کارگیری آرایه‌ها می‌توانیم با استفاده از دیتا تایپ int یک آرایه به منظور ذخیرۀ شماره‌ تلفن افراد تعریف کرده و همچنین آبجکتی از روی کلاس String ساخته و مجموعه‌ای از نام‌ دوستان خود را در آن ذخیره نماییم که این امر منجر بدین می‌شود تا سورس‌کدی کوتاه و تمیز داشته باشیم.

در آموزش‌های پیش توضیح دادیم که برای ایجاد یک متغیر بدین صورت عمل می‌کنیم که دیتا تایپ مورد نظر را نوشته سپس نام متغیر را درج کرده و در ادامه یک علامت = قرار داده و بدین ترتیب مقدار اولیۀ مورد نظر را به متغیر خود اختصاص می‌دهیم و در نهایت هم یک علامت ; قرار می‌دهیم که به منزلۀ پایان دستور می‌باشد. نحوۀ تعریف آرایه نیز تا حدودی مشابه تعریف متغیر می‌باشد با این تفاوت که برای تعریف متغیر پس از دیتا تایپ مورد نظر علائم [ ] را درج کرده سپس عملگر = را قرار داده و در ادامه کیورد new را درج می‌کنیم که بدین ترتیب به کامپایلر جاوا دستور می‌دهیم که یک آرایۀ جدید برای‌مان ایجاد کند و در ادامه مجدداً دیتا تایپ مورد نظر را نوشته و داخل علائم [ ] داده‌های مورد نیاز را درج می‌کنیم که بدین ترتیب آرایه‌ای از جنس عدد صحیح داریم که به متغیری اختصاص داده شده‌ است.

در همین راستا، به منظور پیاده‌سازی سناریوی فوق پروژه‌ای جدید در محیط برنامه‌نویسی اکلیپس تحت عنوان ArrayIntro ساخته و یک کلاس به نام Array در آن ایجاد می‌کنیم و در ادامه به منظور تعريف متغيرهای مربوط به سناریوی این آموزش، قصد داریم تا دو متغیر تعریف کرده و آرایه‌ای از اعداد و همچنین استرینگ‌ها را به صورت زیر به آن‌ها اختصاص دهیم که در ابتدا با استفاده از دیتا تایپ int آرایه‌ای به صورت زیر به منظور ذخیرۀ نام افراد تعریف می‌کنیم:

public class Array {
    public static void main(String[] args) {
        int[] number = new int[3];
    }
}

در کد فوق، با استفاده از دیتا تایپ int آبجکتی جدید از نوع آرایه تحت عنوان number ایجاد کرده‌ایم که با استفاده از کیورد new به کامپایلر جاوا می‌گوییم تا آبجکتی از نوع آرایه به طول 3 بسازد و بدین ترتیب آرایه‌ای سه‌تایی به نام number داریم که می‌توانیم 3 مقدار از جنس عدد صحیح را بدان منتسب کنیم.

در آموزش‌های گذشته نیز اشاره کردیم که در شمارش و دسترسی به مقادیر اِلِمان‌های لیست، آرایه، کاراکترهای استرینگ و غیره همواره اولین جایگاه به عدد 0 تعلق دارد که در این آموزش نیز به همین ترتیب عمل کرده و اندیس 0 از آرایۀ فوق را به نفر اول، اندیس 1 را به نفر دوم و اندیس 2 را به نفر سوم اختصاص می‌دهیم که از همین روی به صورت زیر سه شماره‌ تلفن فرضی را برای هر یک از افراد مورد نظر خود در آرایۀ number ذخیره می‌نماییم:

public class Array {
    public static void main(String[] args) {
        int[] number = new int[3];
        number[0] = 91816122;
        number[1] = 91217945;
        number[2] = 91144423;
    }
}

همان‌طور که مشاهده می‌کنیم، به منظور اختصاص مقدار به هر یک از اندیس‌های آرایۀ number اندیس مورد نظر را داخل علائم [ ] مقابل نام آرایه و یک علامت = قرار داده و بدین ترتیب شماره‌ تلفن مورد نظر خود را بدان جایگاه اختصاص می‌دهیم و در نهایت یک علامت ; قرار می‌دهیم.

حال قصد داریم تا آرایۀ جدیدی به منظور ذخیرۀ نام افراد تعریف کنیم که برای این منظور نیاز به استفاده از کلاس String داریم که در آموزش معرفی کلاس String در زبان برنامه‌نویسی جاوا به معرفی آن پرداختیم. بنابراین در ادامه یک آرایۀ دیگر از جنس String ایجاد کرده و کد فوق را به شکل زیر تکمیل می‌کنیم:

public class Array {
    public static void main(String[] args) {
        int[] number = new int[3];
        number[0] = 91816122;
        number[1] = 91217945;
        number[2] = 91144423;
        String[] name = new String[3];
        name[0] = "Iman";
        name[1] = "Aria";
        name[2] = "MohammadAli";
    }
}

همان‌طور که ملاحظه می‌کنیم، روش تعریف آرایه‌ای از جنس String نیز همانند دیتا تایپ int است که در ابتدای کد آن را توضیح دادیم با این تفاوت که برای ذخیره‌سازی مقادیر استرینگ‌ از علائم " " استفاده کرده‌ایم. در این مرحله کد ما تکمیل شده است و در ادامه دستوری به صورت زیر جهت نمایش نام افراد به همراه شمارۀ تلفن ایشان را به سورس‌کد اضافه می‌نماییم:

public class Array {
    public static void main(String[] args) {
        int[] number = new int[3];
        number[0] = 91816122;
        number[1] = 91217945;
        number[2] = 91144423;
        String[] name = new String[3];
        name[0] = "Iman";
        name[1] = "Aria";
        name[2] = "MohammadAli";
        System.out.println("My first friend is named " + name[0] + " and his phone number is " + number[0]);
    }
}

با اجرای برنامۀ فوق، هر یک از شماره‌ تلفن‌های مذکور به آرایهٔ number و در جایگاه مورد نظر ذخیره شده و در ادامه استرینگ‌های مربوط به نام افراد نیز در جایگاه مورد نظر از آرایهٔ‌ name ذخیره می‌شود سپس اِلِمان مربوط به اندیس 0 از آرایۀ name و همچنین اِلِمان مربوط به اندیس 0 از آرایۀ number به همراه استرینگ‌های فوق در کنسول چاپ می‌گردند. حال برنامۀ فوق را اجرا کرده به طوری که در خروجی خواهیم داشت:

My first friend is named Iman and his phone number is 91816122

در ادامه، به منظور چاپ نام و همچنین شماره‌ تلفن دو فرد دیگر نیاز است تا کد فوق را به صورت زیر تکمیل نماییم:

public class Array {
    public static void main(String[] args) {
        int[] number = new int[3];
        number[0] = 91816122;
        number[1] = 91217945;
        number[2] = 91144423;
        String[] name = new String[3];
        name[0] = "Iman";
        name[1] = "Aria";
        name[2] = "MohammadAli";
        System.out.println("My first friend is named " + name[0] + " and his phone number is " + number[0]);
        System.out.println("My second friend is named " + name[1]+ " and his phone number is " + number[1]);
        System.out.println("My third friend is named " + name[2] + " and his phone number is " + number[2]);
    }
}

حال برنامۀ فوق را مجدداً اجرا کرده و در خروجی خواهیم داشت:

My first friend is named Iman and his phone number is 91816122
My second friend is named Aria and his phone number is 91217945
My third friend is named MohammadAli and his phone number is 91144423

همان‌طور که می‌بینیم، هر یک از اِلِمان‌های درج‌شده در آرایه‌های name و number به همراه استرینگ متناظرشان در کنسول چاپ شده‌اند. 

دانلود فایل‌های تمرین

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
mohammadrashid
mohammadrashid
۱۳۹۸/۰۵/۰۵
سلام ممنون از آموزش‌هاتون. نمی خواین یه کتاب بدین بیرون .اگر نه ،یه کتاب معرفی کنید .
shanda
shanda
۱۳۹۵/۰۸/۱۲
import java.util.Scanner;
public class FirstProgram {
public static void main(String[] args){
int i;
int[] number=new int[3];
String[] name=new String[3];
Scanner take=new Scanner(System.in);
for(i=0;i<3;i++){
System.out.print("Enter Your Name Of Contact = ");
name[i]=take.next();
System.out.print("Enter Your Number Of Contact = ");
number[i]=take.nextInt();
}
for(i=0;i<3;i++)
System.out.print(name[i] + " = " + number[i]);
}
}
وقتی برنامه رو اجرا میکنم بعد از یک بار اجرای حلقه اول با این ارور مواجه میشم
Exception in thread "main" java.util.InputMismatchException: For input string: "0938233"
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at FirstProgram.main(FirstProgram.java:14)
مشکل کجاست ؟؟؟

mortal
mortal
۱۳۹۵/۰۶/۲۰
سلام و خسته نباشید.آیا راهی وجود داره که نخوایم تک تک نامها و شماره ها رو جداگانه چاپ کنیم؟
مثلا یه حلقه ی for بزنیم؟
متشکرم
javad
javad
۱۳۹۵/۰۳/۱۶
سلام وخسته نباشید،خب راهکار اینکه بتونیم شماره تلفن رو کامل بنویسیم چیه؟
عیسی پور
عیسی پور
۱۳۹۴/۰۹/۱۲
عالی بود لایک
امیرحسین مختاری
امیرحسین مختاری
۱۳۹۴/۰۹/۰۸
برای منم همین مشکل هست در وارد کردن شماره این ارور رو میده
The literal 9185566565 of type int is out of range
کاربر میهمان
Compilerمن یک کاربر مهمان هستم
۱۳۹۴/۰۹/۰۷
سلام ایمان جان. یه متغیر int فقط میتونه تا عدد 2,147,483,647 رو تو خودش ذخیره کنه و وقتی عدداز این مقدار بزرگتر بشه اون اروری که نوشته رو میده.
کاربر میهمان
ایمانمن یک کاربر مهمان هستم
۱۳۹۴/۰۹/۰۶
تشکر از کار زیباتون
من یه مشکلی دارم و اون اینه که در قسمت مقدار دهی به آرایه number کمپایلر ارور integer number too large رو میده چکارش باید بکنم؟