جستجو
۱۳۹۶/۹/۳ جمعه
(2)
(0)
جلسه دوم - کلاس ArrayList در جاوا
جلسه دوم  - کلاس ArrayList در جاوا
به نام خدا

        
تقدیم به هموطنان عزیزم



جاوا را با لذت یاد بگیر!

 


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

Collections در جاوا

موضوع: کلاس ArrayList

جلسه: دوم

نویسنده : رحمان زارعی

جاوا را ساده،آسان و شیرین بنوشید!!!


سلام. دوست من، امروز قصد داریم به کلاس ArrayList یکی از کلاس های موجود در فریم ورک Collection در جاوا بپردازیم. ما پیش تر در آموزش مفاهیم جاوا، جسله سی و هشتم به کلاس ArrayList پرداخته ایم، به دلیل این که قصد داریم در یک بسته آموزشی مجزا به فریم ورک Collection در جاوا بپردازیم و کلاس ArrayList نیز یکی از کلاس های موجود در فریم ورک Collection ها است، دوباره همون جلسه سی و هشتم رو با ویرایش در قالب جلسه دوم آموزش Collection ها در جاوا آورده ایم. اصلا گیج نشید! کلا اگه قبلا ArrayList رو خوندید و اشنایی دارید چه اشکالی داره یکبار دیگه یک مروری داشته باشید 😊😊😊

کلاس ArrayList:
کلاس ArrayList از یک آرایه پویا(dynamic) برای ذخیره سازی عناصر استفاده می کند. کلاس ArrayList ، کلاس AbstractList را به ارث برده و اینترفیس List را implements کرده است.

در کل ArrayList را یک آرایه تصور کنید که پویا می باشد.منظور از پویا بودن چیست؟! یعنی این که هر وقت خواستید خانه های ArrayList را کم و زیاد کنید!!! به عبارتی می توانید خانه های آن را حذف یا اضاف کنید کاری که در آرایه ها نمی توانستیم انجام دهیم.

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


نکته :  ArrayList می تواند عناصر تکراری داشته باشد. 


سلسله مراتب کلاس ArrayList در جاوا:
نمودار زیر نشان می دهد که کلاس ArrayList ، کلاس AbstractList را به ارث برده و اینترفیس List را implements کرده است. همچنین اینترفیس List اینترفیس Collection را به ارث برده است و اینترفیس Collection اینترفیس Iterable را به ارث برده است.
 
سلسله مراتب Arralist















تصویر(1)
 
تعریف کلاس ArrayList در برنامه:

برای تعریف کلاس ArrayList در برنامه خود باید پکیج زیر را بالای کلاس خود import کنید:
 
import  java.util.ArrayList;


سازنده های کلاس ArrayList :
 
شمارهسازندهتوضیح
1ArrayList()برای ایجاد یک arraylist  خالی استفاده می شود
2ArrayList(Collection c)برای ایجاد یک arraylist که با عناصر موجود در   collection (مجموعه) c مقدار دهی اولیه می شود.
به زبان ساده برای ایجاد یک  arraylist که با مقادیر موجود در مجموعه c مقداردهی اولیه می شود.
طبق نمودار موجود در تصویر(1)  ArrayList یک collection حساب می شود.
3ArrayList(int capacity)برای ایجاد یک arraylist  با ظرفیت اولیه مشخص استفاده می شود.
منظور از ظرفیت یا capacity اندازه خانه های  arraylist است که برای ذخیره عناصر موجود در arraylist استفاده می شود. با هر بار اضاف شدن یک عنصر به arraylist به طور خودکار ظرفیت arraylist افزایش می یابد. به همین دلیل است که arraylist یک آرایه پویا است و می توان اندازه آن را کم و زیاد کرد.
 
 
نکته:ما در جلسه اول ، مفاهیم Collection در جاوارا بررسی کرده ایم.

متد های کلاس ArrayList :
 
 
شمارهمتدتوضیح
1void add(int index, Object element)این متد برای درج کردن (اضاف کردن) یک عنصر مشخص در موقعیت ایندکس خاص از ArrayList استفاده می شود.
به زبان ساده برای اضاف کردن یک عنصر به خانه شماره index ام ArrayList مورد استفاده قرار می گیرد.
2boolean addAll(Collection c)این متد برای افزودن تمام عناصر یک مجموعه (Collection) مشخص c را به انتهای لیست  ArrayList است.

اگر مجموعه ای (Collection) که قراره به ArrayList اضاف شود مقدارش null بود ، برنامه دچار استثنای  NullPointerException می شود.


 
3void clear()برای حذف همه عناصر موجود در لیست ArrayList استفاده می شود.
4int last indexOf(Object o)این متد یک عنصر را به عنوان پارامتر می گیرد و در صورت وجود این عنصر در ArrayList ، آخرین ایندکس آن را برمی گرداند.
منظور از آخرین ایندکس این است که فرض کنید عنصری که قراره ایندکس اش را پیدا کنیم در ArrayList تکراری باشد یا به عبارتی چند مورد از آن وجود داشته باشد، این متد آخرین ایندکس این عنصر را پیدا کرده و برمی گرداند.
به  شماره خانه عنصر موجود دراگر شی داده شده در ArrayList موجود باشد شماره ایندکس آن را برمی گرداند در صورت عدم وجود شی در ArrayList مقدار -1 را برمی گرداند. ArrayList ایندکس یا اندیس می گویند.
5Object[] toArray()تمام عناصر موجود در یک  ArrayList را در قالب یک آرایه از نوع کلاس Object  بر میگرداند.
کلاس Object پدر همه کلاس ها در جاوا می باشد.
به زبان ساده برای تبدیل یک ArrayList به یک آرایه از نوع Object از این متد استفاده می شود.
در این روش تبدیل ArrayList به آرایه ، به دلیل این که نوع برگردانده شده از نوع Object هست باید از تبدیل نوع یا casting استفاده کنید ، به عبارتی هر عنصر از آرایه را از نوع Object به نوع دلخواه باید cast یا تبدیل کنید.
6T[] toArray(T[] a)برای تبدیل  ArrayList به آرایه ای از نوع مشخص از این متد استفاده می کنیم.
مزیتی که این متد دارد دیگر نیازی به casting کردن عناصر آرایه نداریم و مستقیم نوع آرایه از نوع عناصر ArrayList می شود.
7boolean add(Object o)برای اضاف کردن یک عنصر مشخص به انتهای لیست موجود در ArrayList استفاده می شود.
8boolean addAll(int index, Collection c)این متد برای افزودن تمام عناصر مجموعه (Collection) مشخص c از خانه index ام به بعد ArrayList  استفاده می شود.
9Object clone()کپی از یک ArrayList را برای ما برمیگرداند.
به زبان ساده یک کپی از شی ArrayList که این متد را صدا زده است را برمی گرداند.
10int  indexOf(Object o)بر عکس متد lastindexOf این متد اولین ایندکس عنصری که به عنوان پارامتر گرفته در صورت وجود در ArrayList برمی گرداند.
اگر شی داده شده در ArrayList موجود باشد شماره ایندکس آن را برمی گرداند در صورت عدم وجود شی در ArrayList مقدار -1 را برمی گرداند.
 
اگه توضیح متدها واضع نبود خبری نیست! با مثال و تست کردن متدهای مورد نظرتون میتونید راحت کاربردشون رو درک کنید.
 
مقایسه (Collection)مجموعه Generic و غیر Generic در جاوا :
 
فریم ورک collection قبل از JDK 1.5 غیر Generic بوده و از JDK 1.5 به بعد، Generic می باشد.
(collection)مجموعه Generic جاوا امکانات جدیدی به ما می دهد، امکاناتی که به ما اجازه می دهد تا تنها یک نوع شی در مجموعه(collection) داشته باشید. یعنی نوع عناصری که قراره در مجموعه(collection) ما قرار بگیرند را می توانیم مشخص کنیم. در حال حاضر (Collection)مجموعه Generic ایمن تر می باشد و در زمان اجرای برنامه نیاز به تبدیل نوع یا typecasting نداریم.
 
روش قدیمی ایجاد یک (Collection)مجموعه غیر Generic  در جاوا:
 
مثالی از ایجاد یک (Collection)مجموعه غیر Generic  در جاوا:
بازم میگم ArrayList خود یک مجموعه حساب می شود مثل سایر مجموعه های دیگر.
 
ArrayList al=new ArrayList();
 
روش جدید ایجاد یک (Collection)مجموعه Generic  در جاوا:
 
مثالی از ایجاد یک (Collection)مجموعه Generic  در جاوا:
 
ArrayList<String> al=new ArrayList<String>();

ما در یک مجموعه Generic نوع عناصر موجود در ArrayList را مشخص می کنیم.پس ArrayList مجبور است که فقط نوع مشخصی از اشیا را در خود داشته باشد.اگر شما سعی کنید نوع دیگری از شی را به یک ArrayList اضاف کنید، خطای زمان کامپایل رخ می دهد.
در مثال بالا ArrayList ما تنها اشیا یا عناصری که از نوع String باشد را می پذیرد.
Generic خود یکی از مباحث جاوا می باشد که در یک جلسه اموزشی به طور مفصل به آن می پردازیم.
 
توضیحات رو بیخیال میشیم!! میریم سراغ مثال های ArrayList در جاوا:
 
مثال:
 
package javalike ArrayList;
 
import java.util.*;
 
class TestCollection1 {
public static void main(String args[]) {
ArrayList<String> list = new ArrayList<String>();// Creating arraylist
list.add("Ravi");// Adding object in arraylist
list.add("Vijay");
list.add("Ravi");
list.add("Ajay");
// Traversing list through Iterator
Iterator itr = list.iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
}
}

خروجی(output):
 
Ravi
Vijay
Ravi
Ajay
 
توضیحات:
 
import java.util.*;
 
• قبل از  هرچیز پکیج بالا را در برنامه خود برای استفاده از کلاس ArrayList ، import می کنیم.
 
ArrayList<String> list = new ArrayList<String>();

• یک ArrayList تعریف کرده و نوع آن را String گذاشته ایم.
• برای تعریف یک ArrayList در جاوا بصورت زیر عمل می کنیم:

1. نام کلاس ArrayList را تایپ می کنیم:
 
ArrayList

2. نوع عناصر یا اشیایی که قراره در ArrayList ما قرار بگیرند را بین دو علامت < > قرار می دهیم.
 
ArrayList<>

در این مثال نوع اشیای ArrayList را از نوع String انتخاب کرده ایم.پس:
 
ArrayList<String>

3. حال نامی را برای شی ایجاد شده از نوع کلاس ArrayList انتخاب می کنیم:
 
ArrayList<String> list 

4. بعد از نام ، علامت = گذاشته و سمت راست علامت مساوی از کلمه کلیدی new استفاده می کنیم.
 
ArrayList<String> list =new 

5. دوباره نام کلاس ArrayList به همراه نوع عناصری که قراره در ArrayList قرار بگیرند را بعد از کلمه کلیدی new تکرار می کنیم: 
 
ArrayList<String> list = new ArrayList<String>

6. حال یک پرانتز باز و بسته () و یک ; آخر خط دستور قرار می دهیم!
 
ArrayList<String> list = new ArrayList<String>();

• به همین راحتی یک شی از نوع کلاس ArrayList که نوع عناصر درون ان از نوع String می باشد ایجاد کردیم!!!!
 
خلاصه کل ماجرا ساخت شی از کلاس ArrayList را در شکل زیر ببنید:
 
آموزش arraylist در جاوا
 
ادامه توضیحات مثال....
 
list.add("Ravi");// Adding object in arraylist
list.add("Vijay");
list.add("Ravi");
list.add("Ajay");
•    افزودن اشیا خود به arraylist، در اینجای اشیای ما از نوع کلاس String می باشد.

Iterator

نکته مهم: همان طور که در جلسه اول Collections در جاوا گفتیم برای پیمایش یک Collection از امکانات اینترفیس Iterator استفاده می کنیم.

•    پیمایش یک Collection چه کاربردی دارد؟ گاهی نیاز داریم عناصر یک Collection را دستکاری یا چاپ کنیم به همین خاطر نیاز به پیمایش عناصر Collection پیدا می کنیم.

•    همان طور که می دانید Arraylist طبق تصویر(1) یک Collection حساب می شود. پس می توانیم عناصر یک Arraylist را با امکانات اینترفیس Iterator پیمایش کنیم.

•    یکی از راه های پیمایش Collection ها استفاده از امکانات اینترفیس Iterator می باشد ، راه دیگری نیز وجود دارد که جلوتر بررسی خواهیم کرد.

 

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

 
 این جلسه آموزشی را می توانید بصورت  کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)



کانال تلگرام آموزش جاوا

آموزش آسان و ساده زبان برنامه نویسی جاوا
لینک دانلود

نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

1 نظر
فاطمه
دوشنبه نهم بهمن ۹۶
پاسخ
()
()
فاطمه
خيييلي خوب بود :) خيلي ممنون
طراحی شده توسط شرکت طراحی سایت و سایت ساز آنلاین یوتاب - فروشگاه ساز اینترنتیطراحی شده توسط شرکت طراحی سایت و سایت ساز آنلاین یوتاب - فروشگاه ساز اینترنتی