menusearch
javapro.ir

جلسه دوم - کلاس ArrayList در جاوا

جستجو
شنبه ۱ دی ۱۴۰۳ | ۱۶:۱۷:۶
۱۳۹۶/۹/۳ جمعه
(14)
(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  index Of(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   index Of(Object o)بر عکس متد last index Of این متد اولین ایندکس عنصری که به عنوان پارامتر گرفته در صورت وجود در 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 java like  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. print ln(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 شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)



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

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

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

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

3 نظر
ELHAM
چهارشنبه سیزدهم اسفند ۹۹
پاسخ
()
()
ELHAM
عالي بود و خيلي ريز توضيح داده بودين.سپاس
پاسخ مدیر سایت
سلام الهام مرسی :)
پاسخ مدیر سایت
روژان
یکشنبه یکم اردیبهشت ۹۸
پاسخ
(2)
(0)
روژان
با سلام و خسته نباشيد خيلي خيلي عاليه،واقعا لذت بردم مطالب خيلي مرتب و کامل هست،بي نهايت ممنون
پاسخ مدیر سایت
با سلام و احترام.از نظر لطف شما سپاسگزاریم
پاسخ مدیر سایت
فاطمه
دوشنبه نهم بهمن ۹۶
پاسخ
(1)
(0)
فاطمه
خيييلي خوب بود :) خيلي ممنون
هدر سایت
دوره برنامه نویسی Spring Core
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب