آرایه های چند بعدی در جاوا (جامع ترین منبع آموزش در جاوا)


آرایه های چند بعدی در جاوا
براي خريد اين درس نياز است وارد سايت شويد. در صورت نداشتن حساب کاربري عضو شويد.

آموزش آرایه‌های دو بعدی و لیست‌ها در زبان جاوا:


در جلسه قبل آرایه‌های یک بعدی را توضیح دادیم. گفتیم که آرایه‌ها یک بعدی خانه‌های کنارهم در حافظه هستند که می‌توانند داده‌های بسیار زیادی را از یک نوع  داده نگهداری کنند. داده‌ها در خانه‌هایی که همگی دارای یک نام هستند اما به کمک شماره‎هایی از هم جدا می‌شوند را ذخیره می کنیم و در صورت نیاز می‌توانیم به صورت مستقیم به هریک از خانه های آرایه دسترسی داشته باشیم. مزیت اصلی آرایه‌ها این است که سرعت بازیابی اطلاعات در این خانه‌ها خیلی زیاد است. با وجود داشتن شماره هر خانه می‌توانیم مستقیما به سراغ خانه مورد نظر خود برویم و اطلاعات را بازیابی و یا حتی داخل آن ذخیره کنیم. اما چرا به آن‌ها آرایه‌های یک بعدی می‌گویند؟ به این علت که هر خانه دارای یک شماره یا اندیس است.


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


به همین منظور از collectionها استفاده می‌کنیم. هر مجموعه‌ایی می‌تواند یک کالکشن باشد. کالکشن‌ها به ما اجازه می‌دهند که هرتعداد داده‌ایی را بدون محدودیت ذخیره کنیم و نکته مهم این است که هر زمان  که به خانه‌ایی احتیاجی نداشتیم  فضای گرفته شده را می‌توانیم پس دهیم. از بین کالکشن‌ها در این جلسه با list ها آشنا می‌شوید. لیست‌ها یک نوع خاص از کالکشن‌ها هستند. در واقع یک اینترفیس به نام لیست در جاوا داریم و نمی‌توانیم مستقیما از خودش فضایی ایجاد کنیم. اینترفیس‌ها را در مبحث شی‌گرایی توضیح دادیم. این اینترفیس چند فرزند دارد که از جنس کلاس هستند. مثل:  ArrayList، Vector و  LinkedList . در این دوره ArrayList را به شما عزیزان آموزش می‌دهیم.  تا به شما یاد دهیم که می‌توانید در برنامه نویسی در لحظه تعریف یک کالکشن یا مجموعه مشخص نکنید که چه تعداد خانه نیاز دارید و نسبت به رشد برنامه هر تعداد فضا که نیاز دارید ایجاد کنید.


نحوه تعریف آرایه‌های دو بعدی:  در این مثال یک آرایه 15 خانه ایی ایجاد کردیم که دارای 3 سطر و 5 ستون می‌باشد.

 

package  package1
public class MainClass {
      public static void main (string [] args) {
            int [][] a = new int[تعداد سطر] [تعداد ستون];
            int [][]  a = new int[3] [5];
     }
}


مقداردهی کردن خانه‌های آرایه:


package  package1
public class MainClass {
      public static void main (string [] args) {
            Scanner reader = new Scanner (System.in);
            int [][] a = new int[2] [3];
            for (int i = 0 ; i<2 ; i++) {
                  for (int j = 0 ; j<3 ; j++) {
                          system.out.print(“Enter A[“+i+”] [“+j+”] : ” );
                          a [ i ][ j ] = reader.nexInt();
                  }
         }     

             for (int i = 0 ; i<2 ; i++) {
                  for (int j = 0 ; j<3 ; j++) {
                          system.out.print(a[i][j] + “\t”);     
                  }
                        System.out.println();
         }     
     }
}


آرایه‎‌های دو بعدی دندانه دار: تعداد ستون‌های آرایه از ابتدا مشخص نیست.
 


package  package1
public class MainClass {
      public static void main (string [] args) {
               Scanner reader = new Scanner (System.in);
               Random rand = new Random();
               int [][]  a = new int[3] [];
               a[0] = new int [تعداد ستون را برای هر سطر مشخص می‌کنیم];
               a[0] = new int [5];
               a[1] = new int [3];
               a[2] = new int [10];

            for (int i = 0 ; i<3; i++) {
                  for (int j = 0 ; j< a[i].length ; j++) {
                          a[i][j] = rand.nextInt(10);
                  }            
         }
    
              for (int i = 0 ; i<3; i++) {
                  for (int j = 0 ; j< a[i].length ; j++) {
                          system.out.print(a[i][j] + “\t”);     
                  }            
         }                  
     }
}

 

نحوه تعریف ArrayList: لیستی از اسامی را با arraylist ایجاد می‌کنیم.  با استفاده از ArrayList می‌توانیم لیستی از انواع داده‌ها ایجاد کنیم.


package  package1
import  java.util.List;
public class MainClass {
      public static void main (string [] args) {
            ArrayList<String> nameList = new  ArrayLlist<String>();
            nameList.add(“Mehdi”);
        nameList.add(“Ali”);
        nameList.add(“Reza”);
        nameList.add(“Mohammad”);
        for (int i = 0 ; i < nameList.size() ; i++) {
              system.out.println(nameList.get(i));
        }
     }
}

 

برای چاپ اطلاعات می‌توانیم از foreach استفاده کنیم:

package  package1
import  java.util.List;
public class MainClass {
      public static void main (string [] args) {
            ArrayList<String> nameList = new  ArrayLlist<String>();
            nameList.add(“Mehdi”);
        nameList.add(“Ali”);
        nameList.add(“Reza”);
        nameList.add(“Mohammad”);
        for (String item : nameList) {
              system.out.println(item);
        }
     }
}

 

برای تغییر مقدار یک خانه از متد set استفاده می‌کنیم:
در این برنامه با استفاده از متد set مقدار خانه 1 را تغییر می‌دهیم. نام Zahra جایگزین نام Reza می‌شود.


package  package1
import  java.util.List;
public class MainClass {
      public static void main (string [] args) {
            ArrayList<String> nameList = new  ArrayLlist<String>();
            nameList.add(“Mehdi”);
        nameList.add(“Ali”);
        nameList.add(“Reza”);
        nameList.add(“Mohammad”);
        nameList.set(1,”Zahra”);
       
        for (String item : nameList) {
              system.out.println(item);
        }
     }
}

 

برای حذف یک خانه از متد remove استفاده می‌کنیم:

nameList.remove(شماره خانه);
nameList.remove(2);


 

دوست درسمنی عزیز، امیدواریم از این آموزش رایگان لذت برده باشید.
برای یادگیری این مبحث می توانید این درس را دانلود کنید و از فایل ها و ویدئو این بخش استفاده کنید.
شما عزیزان می توانید سوالات خود را در بخش انجمن پرسش و پاسخ مطرح کنید و همچنین منتظر انتقادات و پیشنهادات مفید شما در بخش نظرات هستیم تا ما را در کیفیت بهتر آموزش هایمان یاری کنید.

با امید موفقیت و شادی برای شما دوست درسمنی عزیزsmiley
انجمن برنامه نویسان جاوا


 

 

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

برای پاسخ باید وارد شوید

پشتیبانی 1
پشتیبانی 1

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


نظر بدهید نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.


مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات 26 جلسه
مدت زمان 742 دقیقه
حجم دوره 1/84 گیگابایت
سطح مهارت مقدماتی تا متوسط
وضعیت دوره پایان یافته
تعداد دانشجویان 1942
: میانگین امتیاز

رایگان
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی

مهدی عباسی


درباره مدرس :

مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی آنلاین درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ... ده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و ....
بیشتر بدانید