Presentation is loading. Please wait.

Presentation is loading. Please wait.

JAVA Collections Framework Set Interfaces & Implementations

Similar presentations


Presentation on theme: "JAVA Collections Framework Set Interfaces & Implementations"— Presentation transcript:

1 JAVA Collections Framework Set Interfaces & Implementations
ساختمان داده ها و الگوريتم ها

2 Collection Collection : دسته اي از اشياء هم نوع عمليات روي Collection
{ 1و و2و 2و3و4و4و5و5} ، روزهاي هفته عمليات روي Collection مرتب سازي جستجو حذف و اضافه نمودن اعضا ذخيره و بازيابي Storage/Retrieve

3 مزاياي استفاده از Collections
کاهش برنامه نويسي افزايش کيفيت و سرعت برنامه ها ارتباط آسانتر نرم افزارهاي مختلف کاهش زمان يادگيري توابع و متدهاي لازم کاهش زمان طراحي توابع و متدهاي جديد امکان استفاده مجدد از نرم افزارهاي مبتني بر Collections Framework

4 JAVA Collections Framework
Stack, queue, list, hash table, map Collections Framework Interfaces Abstract Data Type Representation of Collections Implementation JAVA class definition of the ADT ‘s Algorithms How to sort, search ..?

5 Interface Interface == ADT قراردادهايي براي نحوه دسترسي به مجموعه پويا
مثال: Stack ADT ساختمان داده پشته را تعريف مي کند. داده هاي Stack : آرايه اي از اعضا عمليات روي Stack :حذف و اضافه نمودن اعضا، بررسي پر يا خالي بودن Stack و... JAVA Collections Framework چندين Interface‌براي پشتيباني ساختمان داده هاي معروف تعريف مي کند

6 Core Collection Interfaces
Map : تابع ( به مفهوم رياضي)‌را تعريف مي کند هر عضو دامنه به يک و فقط يک عضو برد اختصاص مي يابد.

7 Collection هاي خاص Set: يک مجموعه به مفهوم رياضي را تعريف مي کند
SortedSet: نوع خاصي از Set است که اعضاي به صورت مرتب قرار گرفته اند. الگوريتم هاي جستجو روي اين مجموعه ها، بسيار سريعتر از مجموعه هاي نا مرتب کار مي کنند. List : دسته اي از اشياء به صورت مرتب است. برخلاف Set در list مي توان عضوي تکراري داشت

8 queue queue (صف)ساختار داده اي است که در آن تريب دسترسي به اعضا، با ترتيب ورود اعضا به queue معين مي شود هر عضوي که زودتر وارد queue زودتر در دسترس قرار مي گيرد اين ساختار First in First Out ‌ است

9 Collection Interface public interface Collection<E> extends Iterable<E> { // Basic operations int size(); boolean isEmpty(); boolean contains(Object element); boolean add(E element); //optional boolean remove(Object element); //optional Iterator<E> iterator(); // Bulk operations boolean containsAll(Collection<E> c); boolean addAll(Collection<E> c); //optional boolean removeAll(Collection<E> c); //optional boolean retainAll(Collection<E> c); //optional void clear(); //optional // Array operations Object[] toArray(); <T> T[] toArray(T[] a); }

10 Set Interface public interface Set<E> extends Collection<E> { // Basic operations int size(); boolean isEmpty(); boolean contains(Object element); boolean add(E element); //optional boolean remove(Object element); //optional Iterator<E> iterator(); // Bulk operations boolean containsAll(Collection<?> c); boolean addAll(Collection<? extends E> c); //optional boolean removeAll(Collection<?> c); //optional boolean retainAll(Collection<?> c); //optional void clear(); //optional // Array Operations Object[] toArray(); <T> T[] toArray(T[] a); }

11 Set Implementation HashSet : اعضاي يك مجموعه را در HashTable نگهداري و مديريت مي كند. ازنظر كارايي، HashSet بهترين پياده سازي است . اين روش ترتيب خاصي روي اعضا اعمال نمي كند TreeSet : اعضاي مجموعه را به صورت مرتب در يك Red-Black Tree نگهداري مي كند كندتر از HashSet عمل مي كند اما ترتيب اعضا را حفظ مي كند LinkedHashSet اعضاي مجموعه را در يك HashTable مجهز به Linked List نگهداري مي كند. تريب اعضا، بر اساس ترتيب اضافه شدن به مجموعه تعيين مي شود

12 مثال 1: مجموعه اي از رشته ها
Set<String> s = new HashSet<String>(); for (String a : args) if (!s.add(a)) System.out.println(a); System.out.println(s.size() + " distinct words: " + s);

13 مثال 2 : تفاضل متقارن Set <String> s1= new HashSet<String>() ; Set <String> s2 = new HashSet<String>() ; Set <String> union = new HashSet<String>(s1); union.addAll(s2) ; Set <String> inter = new HashSet<String>(s1); Inter.retainAll(s2) ; Set <String>diff = new HashSet<String>(union); Diff.removeAll(inter);

14 تمرين با استفاده از Set و يكي از پياده سازي هاي آن ، برنامه اي بنويسيد كه آرايه اي از رشته ها را دريافت كرده و عناصر غير تكراري آن را چاپ كند مهلت ارسال : تا پايان خرداد


Download ppt "JAVA Collections Framework Set Interfaces & Implementations"

Similar presentations


Ads by Google