در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها

با سلام به همه دوستان و همراهان Itpro. در برنامه نویسی بسیاری از مواقع پیش می آید که یک مجموعه ای از داده ها وجود دارد که همه از یک نوع یا یک کلاس می باشند. اگر بخواهیم هرکدام از این داده ها را در یک متغیر ذخیره کنیم ممکن است که چندصد متغیر داشته باشیم که همه از یک نوع می باشند. در این حالت با انبوهی از متغیرها مواجه هستیم که به علت زیاد بودن کار با آنها بسیار مشکل خواهد بود. برای حل این مشکل در زبان های برنامه نویسی یک ساختار داده به نام آرایه وجود دارد. آرایه یک مجموعه ای از داده های هم نوع می باشد که داده ها را در حافظه پشت سرهم ذخیره می کند. آرایه یک نام دارد و هرکدام از داده ها را در یک خانه ذخیره می کند که این خانه با یک اندیس مشخص می شود. اندازه آرایه در جاوا ثابت است. برای مثال برای ذخیره 100 عدد باید 100 عدد متغیر تعریف کرد مانند num1, num2, …..,num100 در حالی که وقتی از آرایه استفاده می کنیم می توانیم یک آرایه 100 تایی معرفی کنیم و برای دسترسی به هرکدام از اندیس آن استفاده کنیم مثل num[0], num[1], num[2],….,num[99]. دقت داشته باشید که اولین خانه آرایه از0 شروع می شود و برای یک آرایه 100 تایی خانه آخر خانه 99 است یعنی یکی کمتر.

معرفی آرایه

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

dataType[] arrayRefVar;   // روش توصیه شده

or

dataType arrayRefVar[];  //  کار می کند ولی توصیه نمی شود

در روش های گفته شده در بالا روش توصیه شده روش خود جاوا است و روشی که توصیه نمی شود روشی است که در زبان های مانند c , c++ مورد استفاده قرار می گیرد و از آنجا که سینتکس جاوا برپایه سینتکس c++ ساخته شده است این روش نوشتاری نیز در جاوا آورده شده است که برای کاربران c++ نیز قابل استفاده باشد.هنگام تعریف باید در قسمت datatype نوع داده یا کلاسی که می خواهیم از آن آرایه بسازیم رای می آوریم و همچنین به جای arrayRefVar نیز باید نام آرایه را قرار داد. مانند کد زیر:

double[] myArray;         // روش توصیه شده

or

double myArray[];         // کار می کند ولی توصیه نمی شود

ساخت آرایه

با استفاده از کلمه کلیدی new می توان یک آرایه جدید ساخت. شکل کلی ساخت آرایه مانند زیر است:

arrayRefVar = new dataType[arraySize];

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

dataType[] arrayRefVar = new dataType[arraySize];

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

dataType[] arrayRefVar = {value0, value1, ..., valuek};

عناصر آرایه همانطور که گفته شد با استفاده از اندیس قابل دسترس هستند که اندیس از 0 شروع می شود.

در کد زیر یک آرایه double به نام myList ساخته شده است که 10 خانه دارد.

double[] myList = new double[10];

شکل زیر ساختار آرایه myList را نشان می دهد که مقادیر double در داخل آن ریخته شده است.

آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها

پردازش آرایه ها

برای پیمایش آرایه و پردازش هرکدام از خانه های آرایه از حلقه های for و foreach استفاده می شود. زیرا که اندازه آرایه از قبل مشخص است و اندازه آرایه را می دانیم. در کد زیر مثالی برای ساخت و استفاده و پردازش آرایه آورده شده است به آن توجه نمایید:

public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (int i = 0; i < myList.length; i++) {
         System.out.println(myList[i] + " ");
      }
      // Summing all elements
      double total = 0;
      for (int i = 0; i < myList.length; i++) {
         total += myList[i];
      }
      System.out.println("Total is " + total);
      // Finding the largest element
      double max = myList[0];
      for (int i = 1; i < myList.length; i++) {
         if (myList[i] > max) max = myList[i];
      }
      System.out.println("Max is " + max);
   }
}

خروجی کد بالا به شکل زیر خواهد بود:

1.9
2.9
3.4
3.5
Total is 11.7
ax is 3.5

حلقه foreach

در زمان jdk 1.5 حلقه foreach معرفی شد تا بتواند حلقه for را بهبود دهد. در این نوع از حلقه می توان کل آرایه را بدون این که اندیس ها را دانست پیمایش کرد. برای مثال به کد زیر توجه نمایید:

public class TestArray {

   public static void main(String[] args) {
      double[] myList = {1.9, 2.9, 3.4, 3.5};

      // Print all the array elements
      for (double element: myList) {
         System.out.println(element);
      }
   }
}

خروجی کد بالا به شکل زیر خواهد بود:

1.9
2.9
3.4
3.5

ارسال آرایه به متدها

همانگونه که می توان انواع اولیه داده را به عنوان آرگومان ورودی به متد ها فرستاد می توان آرایه را نیز به عنوان آرگومان به متدها ارسال نمود. برای مثال متد زیر عناصر موجود در آرایه را در خروجی چاپ می نماید.

public static void printArray(int[] array) {
  for (int i = 0; i < array.length; i++) {
    System.out.print(array[i] + " ");
  }
}

با استفاده از تابع بالا شما می توانید عناصر هر آرایه ای را که از نوع int ساخته شده است را به متد ارسال کرده و متد عناصر آن را چاپ می کند.

بازگرداندن آرایه به عنوان مقدار بازگشتی متد

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

public static int[] reverse(int[] list) {
  int[] result = new int[list.length];

  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
    result[j] = list[i];
  }
  return result;
}

کلاس Array

این کلاس در پکیج java.util قرار دارد که شامل متدهای برای مرتب سازی آرایه و یا جستجو و مقایسه آرایه ها و پر کردن خانه های آرایه می باشد. این متدها برای انواع داده های اصلی می تواند قابل اعمال باشد. در ادامه به چند عدد از مهمترین این متدها پرداخته ایم

متد binarySearch یک ارایه می گیرد و یک مقدار و مقدار مورد نظر را به روش جستجوی دودویی در داخل آرایه جستجو می کند و اگر پیدا شود محل قرارگیری آرایه را برمی گرداند. برای این متد آرایه باید از قبل مرتب شده باشد. شکل نوشتاری این ارایه به شکل زیر است

public static int binarySearch(Object[] a, Object key)

متد equals این متد دو آرایه را با یکدیگر مقایسه می کند. دو آرایه زمانی با هم مساوی هستند که تعداد خانه های آنها با هم برابر بوده و همچنین هر جفت خانه آرایه ها با هم برابر باشند. اگر دو آرایه با هم برابر باشد این متد مقدار true را برمی گرداند. شکل نوشتاری این متد مانند کد زیر است:

public static boolean equals(long[] a, long[] a2)  

متد fill این متد یک مقدار و یک آرایه می گیرد و همه ی خانه های آرایه را با آن مقدار پر می کند. این متد به شکل زیر نوشته می شود:

public static void fill(int[] a, int val)

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

public static void sort(Object[] a)

همه ی اعمال گفته شده در کلاس Array بر روی همه ی انواع اولیه قابل اعمال می باشد.Itpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#کار_با_آرایه_ها_در_جاوا #برنامه_نویسی_جاوا #آموزش_برنامه_نویسی_جاوا #آموزش_جاوا #آرایه_ها_در_جاوا #شروع_برنامه_نویسی_جاوا #دوره_آموزشی_جاوا #آرایه_ها_در_متد_ها_در_جاوا #مقدار_دهی_آرایه #یادگیری_زبان_برنامه_نویسی_جاوا
عنوان
1 آموزش جاوا (Java) قسمت 1 : معرفی ، خصوصیات و شروع به کار رایگان
2 آموزش جاوا (Java) قسمت 2 : شی گرایی قسمت یک رایگان
3 آموزش جاوا (Java) قسمت 3: شی گرایی قسمت دو رایگان
4 آموزش جاوا (Java) قسمت 4 : شی گرایی قسمت سه رایگان
5 آموزش جاوا (Java) قسمت 5 : انواع داده رایگان
6 آموزش جاوا (Java) قسمت 6 : انواع متغیر رایگان
7 آموزش جاوا (Java) قسمت 7 : Modifier ها رایگان
8 آموزش جاوا (Java) قسمت 8 : عملگرها قسمت یک رایگان
9 آموزش جاوا (Java) قسمت 9 : عملگرها قسمت دو رایگان
10 آموزش جاوا (Java) قسمت 10 : حلقه های تکرار رایگان
11 آموزش جاوا (Java) قسمت 11 : عبارات شرطی رایگان
12 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
13 آموزش جاوا (Java) قسمت 12 : کلاس Wrapper اعداد رایگان
14 آموزش جاوا (Java) قسمت 14: کلاس Wrapper کاراکترها رایگان
15 آموزش جاوا (Java) قسمت 15 : کلاس String و کار با رشته قسمت یک رایگان
16 آموزش جاوا (Java) قسمت 16 : کلاس String و کار با رشته قسمت دو رایگان
17 آموزش جاوا (Java) قسمت 17 : کلاس String و کار با رشته قسمت سه رایگان
18 آموزش جاوا (Java) قسمت 18 : کلاس String و کار با رشته قسمت چهار رایگان
19 آموزش جاوا (Java) قسمت 19 : StringBuilder و StringBuffer رایگان
20 آموزش جاوا (Java) قسمت 20 : استفاده از آرایه ها رایگان
21 آموزش جاوا (Java) قسمت 21 : آموزش کار با تاریخ رایگان
22 آموزش جاوا (Java) قسمت 22 : عبارات منظم (Regular Expression) رایگان
23 آموزش جاوا (Java) قسمت 23 : تعریف و استفاده از متدها قسمت یک رایگان
24 آموزش جاوا (Java) قسمت 24 : تعریف و استفاده از متدها قسمت دو رایگان
25 آموزش جاوا (Java) قسمت 25 : کار با استریم ها و فایل ها رایگان
26 آموزش جاوا (Java) قسمت 26 : کار با دایرکتوری ها رایگان
27 آموزش جاوا (Java) قسمت 27 : کلاس ByteArrayInputStream رایگان
28 آموزش جاوا (Java) قسمت 28 : معرفی کلاس File و متدها رایگان
29 آموزش جاوا (Java) قسمت 29 : معرفی و شرح Exception ها قسمت 1 رایگان
30 آموزش جاوا (Java) قسمت 30 : معرفی و شرح Exception ها قسمت 2 رایگان
31 آموزش جاوا (Java) قسمت 31 : معرفی و شرح Exception ها قسمت 3 رایگان
32 آموزش جاوا (Java) قسمت 32 : استفاده از انوع کلاس های داخلی رایگان
33 آموزش جاوا (Java) قسمت 33 : وراثت کلاس ها و انواع آن رایگان
34 آموزش جاوا (Java) قسمت 34 : Override کردن متد ها رایگان
35 آموزش جاوا (Java) قسمت 35 : چند ریختی (Polymorphism) رایگان
36 آموزش جاوا (Java) قسمت 36 : Enum و ویژگی های آن رایگان
37 آموزش جاوا (Java) قسمت 37 : معرفی Abstract رایگان
38 آموزش جاوا (Java) قسمت 38 : استفاده از کپسول بندی (Encapsulation) رایگان
39 آموزش جاوا (Java) قسمت 39 : استفاده از اینترفیس ها رایگان
40 آموزش جاوا (Java) قسمت 40 : پکیج(Package) و نحوه استفاده رایگان
41 آموزش جاوا (Java) قسمت 41 : معرفی داده ساختارها Enumeration رایگان
42 آموزش جاوا (Java) قسمت 42 : داده ساختار BitSet رایگان
43 آموزش جاوا (Java) قسمت 43 : داده ساختار Vector رایگان
44 آموزش جاوا (Java) قسمت 44 : داده ساختار Stack (پشته) رایگان
45 آموزش جاوا (Java) قسمت 45 : داده ساختار Dictionary رایگان
46 آموزش جاوا (Java) قسمت 46 : داده ساختار Hashtable رایگان
47 آموزش جاوا (Java) قسمت 47 : داده ساختار Properites رایگان
48 آموزش جاوا (Java) قسمت 48 : معرفی و آموزش جنریک (Generic) رایگان
49 آموزش جاوا (Java) قسمت 49 : برنامه نویسی سوکت و شبکه قسمت 1 رایگان
50 آموزش جاوا (Java) قسمت 50 : برنامه نویسی سوکت و شبکه قسمت 2 رایگان
51 آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression رایگان
52 آموزش جاوا (Java) قسمت 52 : Thread و Multi-Threading رایگان
53 آموزش جاوا (Java) قسمت 53 : Runnable در Thread و Multi-Threading رایگان
54 آموزش جاوا (Java) قسمت 54 : کلاس Thread و متدها رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....