کالکشن فریم ورک (Collection Framework)

کالکشن ها در جاوا مجموعه ای از اینترفیس ها و کلاسها هستند که کار ذخیره و پردازش داده ها را ممکن می سازند به آنها اصطلاحا Collection Framework گفته میشود.این فریمورک در جاوا شامل متدهای زیادی است که کار برنامه نویسی را راحت تر می نماید. به وسیله آنها میتوان عملیاتی را بر روی گروهی از اشیاء مرتبط به هم انجام داد

سلسله مراتب کالکشن ها :

 

java_collection1

 

 

لیست(List):

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

  • ArrayList
  • LinkedList
  • Vector

 

ArrayList:

یک آرایه داینامیک از عناصر می باشد که اینترفیس List را پیاده سازی می نماید و شامل متدهای زیادی جهت تغییر سایز ArrayListمی باشد.می تواند شامل عناصر تکراری باشد.دستکاری در ArrayList ها بسیار کند است زیرا هنگامی که عنصری حذف می شود عناصر باید شیفت داده شوند.

مفهوم Generic

یکی از ویژگی های برنامه نویسی جاوا می باشد که از جاوا ۵ به بعد معرفی شد با استفاده از این ویژگی میتوان نوع داده را درکالکشن ها ، کلاسها و متدها مشخص نمود.مزایای استفاده از جنریک ها:

  • Type-safety(نوع-ایمنی):تنها می توان یک نوع داده را نگه داری کرد و اجازه ذخیره داده ها از نوع دیگر را نمی دهد.
  • Type casting is not required:نیازی به تبدیل داده ها وجود ندارد.
  • Compile-Time Checking: به دلیل اینکه نوع داده ها در زمان کامپایلمشخص شدهاست نوع داده ها در زمان کامپایل چک می شود و اگر مشکلی وجود داشته باشد در زمان کامپایل حل خواهد شد در نتیجهخطایی در زمان اجرا داده نمی شود.

نحوه تعریف جنریک ها:

ClassOrInterface<Type>

ArrayList<String>

مثالی از جنریک در کالکشن ها :

خروجی برنامه به صورت زیر است :

element is: Ali
Amir
Ali

دو راه برای پیمایش ArrayList وجود دارد :

۱-استفاده از اینترفیس Iterator

۲-استفاده از حلقه For each

مثال۱:

در این مثال از اینترفیس Iterator جهت پیمایش ArrayList استفاده شده است.

خروجی :

Amir
Ali
Reza
Mahdi

مثال ۲:

در این مثال از حلقه foreach جهت پیمایش آرایه استفاده شده است.

خروجی

Amir
Ali
Reza
Hamid

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

مثال:

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

خروجی :

۱۰۱ Nokia lumia
۱۰۲ Samsung galaxy
۱۰۳ LG gt100

لیست پیوندی یا LinkedList :

LinkedList ها هم اینترفیس List راپیاده سازی می کنند که می تواند شامل عناصر تکراری بوده و دستکاری داده ها در آن سریع است زیرا بعد از حذف عنصر نیازی به شیفت دادن عناصر نیست.LinkedList ها می توانند به عنوان لیست ، پشته و صف استفاده شوند.

مثال :

خروجی :

Amir
Hamid
Ali

همینطور که ملاحظه میکنید در لیستهای پیوندی میتوان در یک اندیس خاص مابین لیست عنصری را درج نمود.

مجموعه یا Set :

ست مجموعه ای از عناصر غیرتکراری می باشد سه روش برای پیاده سازی ست ها وجود دارد

  • HashSet:داده ها را درون Hash table ذخیره می نماید
  • TreeSet:عناصر را درون یک درخت ذخیره می کند و از Hash set کندتر است.
  • LinkedHashSet:عناصر را به صورت یک لیست پیوندی در خود ذخیره می کند

HashSet: عناصر موجود در Hash set هیچ ترتیبی ندارند و میتوان به صورت تصادفی به عناصر دسترسی پیدا نمود.و نمی توان عنصر تکراری درون آن ایجاد نمود و امکان ذخیره سازی داده Null در آن وجود دارد

مثال:

خروجی :

[null, Mango, Grapes, Apple, Orange, Fig]

 

خروجی :

[ABC, Ink, Jack, Pen, String, TestTreeSet]
[۰, ۳, ۷, ۸۸, ۱۰۱, ۲۲۲]

LinkedHashSet:

LinkedHashSet شبیه به HashSet می باشد با این تفاوت که داده ها را به همان ترتیبی که اضافه شده اند نمایش می دهد.

مثال:

خروجی :

[Z, PQ, N, O, KK, FGH]
[۹۹, ۷, ۰, ۶۷, ۸۹, ۶۶]

Map:

Map آبجکتی است که یک کلید را به یک مقدار نگاشت می نماید و می تواند شامل دیتا Null باشد اما نمی تواند شامل مقادیر تکراری باشد سه روش جهت پیاده سازی Map وجود دارد:

  • HashMap:ذخیره در جدول Hash بدون مرتب سازی
  • TreeMap:ذخیره عناصر در درخت با مرتب سازی بر اساس مقدار کلید به صورت صعودی
  • LinkedHashMap:ذخیره در جدول Hash با همان ترتیبی که عناصر وارد شده اند

HashMap:

در واقع برای ذخیره سازی جفت کلید و مقدار به کار می رورد و می تواند شامل مقدار Null باشد که در این صورت هم کلید Null است و هم مقدار . و ذخیره سازی به صورت مرتب را نیز تضمین نمی کند.

مثال:

خروجی :

key is: 49 & Value is: Reza
key is: 2 & Value is: Ali
key is: 3 & Value is: Mahdi
key is: 7 & Value is: Hasan
key is: 12 & Value is: Amir
Value at index 2 is: Ali
Map key and values after removal:
Key is: 49 & Value is: Reza
Key is: 2 & Value is: Ali
Key is: 7 & Value is: Hasan
Key is: 12 & Value is: Amir

TreeMap:

شبیه به HashMap ها هستند با این تفاوت که داده های درون آن به صورت صعودی بر اساس کلید مرتب شده اند.

LinkedHashMap :

شبیه به HashMap می باشد با این تفتوت کهداده ها با همان ترتیبی که اضافه شده اند نمایش داده می شوند.

 




پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

code