ارسال آرایه به عنوان آرگومان

می‌توان آرایه‌ها را به عنوان آرگومان به متد ارسال کرد. ابتدا شما باید پارامترهای متد را طوری تعریف کنید که آرایه دریافت کنند. به مثال زیر توجه کنید.

   1: package myfirstprogram;
   2: 
   3: public class MyFirstProgram 
   4: {  
   5:     static void TestArray(int[] numbers)            
   6:     {                                                            
   7:        for(int number : numbers)
   8:        {
   9:            System.out.println(number);
  10:        }
  11:     } 
  12:     
  13:     public static void main(String[] args) 
  14:     {
  15:         int[] array = { 1, 2, 3, 4, 5 };
  16:         TestArray(array);                
  17:     }   
  18: }
1
2
3
4
5

مشاهده کردید که به سادگی می‌توان با گذاشتن کروشه بعد از نوع داده‌ای پارامتر یک متد ایجاد کرد که پارامتر آن، آرایه دریافت می‌کند. وقتی متد در خط 16 فراخوانی می‌شود، آرایه را فقط با استفاده از نام آن و بدون استفاده از اندیس ارسال می‌کنیم. پس آرایه‌ها به روش ارجاع به متدها ارسال می‌شوند. در خطوط 10-7 از حلقه foreach برای دسترسی به اجزای اصلی آرایه که به عوان آرگومان به متد ارسال کرده‌ایم استفاده می‌کنیم. در زیر نحوه ارسال یک آرایه به روش ارجاع نشان داده شده است.

   1: package myfirstprogram;
   2: 
   3: public class MyFirstProgram 
   4: {  
   5:     static void IncrementElements(int[] numbers)            
   6:     {                                                            
   7:        for (int i = 0; i < numbers.length; i++)
   8:        {
   9:            numbers[i]++;
  10:        }
  11:     } 
  12:     
  13:     public static void main(String[] args) 
  14:     {
  15:         int[] array = { 1, 2, 3, 4, 5 };
  16:         
  17:         IncrementElements(array);
  18:         
  19:         for (int num : array)
  20:         {
  21:             System.out.println(num);
  22:         }
  23:     }   
  24: }
2
3
4
5
6

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

IncrementElements( new int[] { 1, 2, 3, 4, 5 } );

در این روش، ما آرایه‌ای تعریف نمی‌کنیم، بلکه مجموعه‌ای از مقادیر را به پارامتر ارسال می‌کنیم که آنها را مانند آرایه قبول کند. از آنجاییکه در این روش آرایه‌ای تعریف نکرده‌ایم، نمی‌توانیم در متد Main نتیجه را چاپ کنیم. اگر از چندین پارامتر در متد استفاده می‌کنید، همیشه برای هر یک از پارامترهایی که آرایه قبول می‌کنند، از یک جفت کروشه استفاده کنید. به عنوان مثال :

void MyMethod(int[] param1, int param2)
{
   //code here
}

به پارامترهای متد بالا توجه کنید، پارامتر اول (param1) آرگومانی از جنس آرایه قبول می‌کند ولی پارامتر دوم (param2) یک عدد صحیح. حال اگر پارامتر دوم (param2) هم آرایه قبول می‌کرد باید برای آن هم از کروشه استفاده می‌کردیم:

void MyMethod(int[] param1, int[] param2)
{
   //code here
}