کار با آرایه‌ها

این درس سریع چگونگی کار با آرایه  ها را  به شما نشان خواهد داد.

آرایه چیست؟

آرایه یک ساختمان‌داده مرسوم است که برای ذخیره یک لیست مرتب از آیتم‌ها به‌کار می‌رود. نوع عناصر آرایه از قبل مشخص می‌شود. به عنوان مثال می‌توانید آرایه‌ای از کاراکترها برای نشان دادن حروف الفبا مانند زیر بسازید:

char aVowels[] = {'a','e','i','o','u'};

بسیار شبیه C++, C آرایه‌های جاوا  طبق سیستم مبتنی بر صفر اندیس گذاری می‎‌شوند. به این معنی که اولین عنصر آرایه در خانه با اندیس صفر قرار دارد، دومین عنصر در خانه با اندیس ۱ و الی آخر.

جاوا به نسبت بسیاری از زبان‌های برنامه‌نویسی، کارکردن با آرایه‌ها را بسیار آسان کرده است.خود آرایه یک شی (از نوع آرایه) است، با تمام منافع حاصل از آن. برای مثال همیشه می‌توانید اندازه یک آرایه را با استفاده از ویژگی طول (length property) بررسی کنید:

int length = aVowels.length;

چه چیزی را می‌توان در آرایه‌ ذخیره کرد؟

هر شی یا هر نوع ابتدایی را می‌توانید در یک آرایه ذخیره کنید. برای مثال می‌توانید اعداد صحیح int را در آرایه بریزید:

int aNums[] = { 2, 4, 6 };

یا انواع غیرابتدایی مانند رشته‌ها (یا هر کلاس دیگری) را در یک آرایه ذخیره کنید:

String aStooges[] = {"Larry", "Moe", "Curly"};

گاهی اوقات ممکن است بخواهی اشیایی از انواع مختلف را در یک آرایه ذخیره کنید. همیشه می‌توانید از مزیت ارث‌بری استفاده کرده و یک کلاس پدر برای نوع آرایه تعریف کنید. به عنوان مثال کلاس Object مادر تمام کلاس‌هاست. بنابراین می‌توانید انواع مختلف را مانند این کد در یک آرایه منفرد ذخیره کنید:

float one = 1.0f;
Integer two = new Integer(2);
String three = "three";
Object aObjects[] = {one, two, three};

عناصر یک آرایه از اشیا جاوا، مراجعی به اشیا هستند، نه موارد حقیقی از اشیا. مقدار یک عنصر آرایه تا زمانی که توسط یک مورد معتبر از یک شی مقداردهی نشود، خالی (null) است. به این معنی که آرایه به صورت خودکار مقداردهی اولیه می‌شود اما مسئولیت اختصاص دادن مقادیر معتبر به عهده شماست.

اعلان آرایه‌ها

برای اعلان آرایه‌ها در جاوا راه‌های مختلفی وجود دارد. همانطور که دیدید، با استفاده از نحو درهم و برهم براکتی به سبک زبان C، می‌توانید یک آرایه را تعریف کرده و بلافاصله عناصرش را فراهم کنید. برای مثال، کد جاوای زیر یک آرایه‌ی اعداد صحیح با طول ۳ را تنها با یک خط کد ایجاد کرده و مقداردهی اولیه می‌ کند:

int aNums[] = { 2, 4, 6 };

همچنین می ‌توانید یک آرایه با سایز مشخص را تعریف کرده سپس هر عنصر را به صورت جداگانه مقداردهی کنید:

double aPowersOfTwo[] = new double[5];
aPowersOfTwo[0]=Math.pow(2,0);
aPowersOfTwo[1]=Math.pow(2,1);
aPowersOfTwo[2]=Math.pow(2,2);
aPowersOfTwo[3]=Math.pow(2,3);
aPowersOfTwo[4]=Math.pow(2,4);

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


double aPowersOfTwoExplicit[] = {1.0d, 2.0d, 4.0d, 8.0d, 16.0d};

روش‌های زیاد دیگری نیز برای ایجاد آرایه‌ها وجود دارد. به عنوان مثال می‌توانید متغیر آرایه را بسازید و به صورت جداگانه با کلمه کلیدی new به آن فضا اختصاص دهید. همچنین در صورت تمایل می‌توانید براکت‌های آرایه را قبل از نام متغیر قرار دهید. این امر کاملاً بستگی به سبک برنامه‌نویسی شما دارد. در مثال زیر آرایه‌ای از رشته‌ها تعریف شده است و سپس هر عنصر به صورت جداگانه مقداردهی می‌شود:

String [] aStopLightColors;
aStopLightColors = new String[3];
aStopLightColors[0] = new String("red");
aStopLightColors[1] = new String("yellow");
aStopLightColors[2] = new String("green");

اصلاح محتویات آرایه

همانطور که دیده‌اید می‌توانید مقادیر آرایه را با استفاده از نحو براکت‌ها، اختصاص دهید. همچنین می‌توانید مقادیر آرایه را با استفاده از اندیس مناسب بازیابی کنید. به عنوان مثال برای دستیابی به دومین عنصر آرایه‌ی aStopLightColors (که در بخش قبل ایجاد کردیم) به شکل زیر دسترسی داشته باشید:

String strCurrentLightColor = aStopLightColors[1];

تکرار آرایه‌ها

درنهایت آرایه‌ها معمولاً به عنوان اشیا یک لیست مرتب به کار می‌روند. بنابراین ممکن است برای دستیابی سیستماتیک به عناصر آرایه نیازمند تکرار از طریق آرایه باشید. برای انجام این کار روش‌های زیادی وجود دارد. از آنجایی که همیشه می‌توانید از طریق کدهای برنامه‌نویسی اندازه آرایه را بدست آورید، می‌توانید از هرکدام از حلقه‌های معمول for و while که با آن آشنایی بیشتری دارید، استفاده کنید. مثلاً کد جاوای زیر یک آرایه ساده ۳ خانه‌ای از اعداد صحیح تعریف می‌کند و از یک حلقه for ساده برای تکرار در آرایه کمک می ‌گیرد:

int aNums[] = { 2, 4, 6 };
for(int i=0; i<array.length; i++){
    System.out.print(aNums[i]);
}

مترجمان :

مهدی قاسم خانی

شیما عرفان

ویرایش  فنی :

محمد غفاری فر

این آموزش ها اختصاصی هستند و ساعت ها برای هر آموزش  زحمت کشیده شده  پس با کپی کردن  بدون ذکر منبع تمامی زحمات مدرسین  و ما رو ضایع نکنین  . با تشکر
محمد غفاری فر
محمد غفاری فر
حدود 8 ساله که در بخش های مختلف مانند انیمشن سازی ، بازی سازی ، طراحی سایت و برنامه نویسی اندروید فعالیت دارم که حدود 6 سال رو بیشتر به اندروید پرداختم . علاقه مند به آموزش دادن هستم و چندین دوره عمومی و خصوصی و همایش اندروید برگزار کرده ام .

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *