دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۴
  • مهر

جلسه ۲۸ : فریم ورک collection در جاوا

  • دسته‌بندی‌ها :
جلسه ۲۸ : فریم ورک collection در جاوا
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرنو کاربرانی که دوره کامل آموزش برنامه نویسی جاوا را دنبال می کنند. تا قبل از نسخه ی جاوا ۲، جاوا کلاس های ad hoc مانند Dictionary, Vector, Stack و Properties را برای ذخیره و دسته بندی گروه هایی از اشیا فراهم می کرد. اگر چه این کلاس ها بسیار مفید بودند، اما آنها فاقد یک موضوع مرکزی و متحد بودند. به این ترتیب، نحوه استفاده از Vector از نحوه ی استفاده از Properties متفاوت بود. اما با ارائه ی فریم ورک collection در جاوا نه تنها مشکل فوق برطرف شد بلکه مزایای دیگری نیز ارائه شد. برای آشنایی با فریم ورک collection در جاوا در ادامه ی مباحث این بخش با ما همراه باشید.

      فریم ورک collection در جاوا

      فریم ورک collection برای رسیدن به اهداف مختلف طراحی شده، از جمله می توان به موارد زیر اشاره کرد:

      • فریم ورک باید عملکرد بالا داشته باشد.
      • پیاده سازی مجموعه های اساسی (آرایه های پویا، لیست های مرتبط، درختان و هشتاب) بسیار کارآمد است.
      • این چارچوب مجاز بود که انواع مختلفی از مجموعه ها را به شیوه ای مشابه و با درجه بالایی از قابلیت همکاری کار کند.
      • چارچوب باید مجموعه را به راحتی گسترش داده و / یا انطباق دهد.

      در این راستا، چارچوب entire collections در اطراف مجموعه ای از اینترفیس های استاندارد طراحی شده است.

      تعدادی از پیاده سازی های استاندارد مانند LinkedList، HashSet و TreeSet از این رابط ها ارائه شده است.

      چارچوب collection یک معماری واحد برای نمایندگی و دستکاری مجموعه است. کلیه مجموعه ها شامل موارد زیر می باشند:

      Interfaces :  اینها نوع داده انتزاعی هستند که مجموعه ها را نشان می دهند، در زبان شی گرا، اینترفیس ها به طور کلی یک سلسله مراتب را تشکیل می دهند

      Implementations, i.e., Classes : در اصل، این ساختار داده های قابل استفاده مجدد است.

      Algorithms : این شامل متدهایی است که محاسبات مفیدی از جمله جستجو و مرتب سازی بر روی اشیاء را انجام می دهند.

      علاوه بر collections، این چارچوب چندین نقشه و کلاس ها را نیز تعریف می کند.

      مجموعه ی اینترفیس ها

      فریم ورک collection چندین اینترفیس را تعریف می کند. این بخش یک مرور کلی از هر اینترفیس را ارائه می کند.

      ردیفاینترفیس و توضیحات
      ۱The Collection Interfaceاین کار شما را قادر می سازد تا با گروه هایی از اشیا کار کنید.
      ۲The List Interfaceاین Collection را گسترش می دهد و نمونه ای از فهرست مجموعه ای از عناصر مرتب را ذخیره می کند.
      ۳The Setاین Collection برای دسته بندی مجموعه ها که شامل عناصر منحصر به فرد است را گسترش می دهد.
      ۴The SortedSetاین نوع یک مجموعه را برای رسیدگی به مجموعه های دسته بندی شده گسترش می دهد.
      ۵The Mapاین نوع نقشه کلیدهای منحصر به فرد را ارزش می دهد.
      ۶The Map.Entryاین نوع نقشه کلیدهای منحصر به فرد را ارزش می دهد.
      ۷The SortedMapاین نقشه را گسترش می دهد به طوری که کلید ها به ترتیب صعودی نگهداری می شوند.
      ۸The Enumerationاین نوع شامل متدهایی است که از Enumeration به ارث برده می شود.

      کلاس های collection

      جاوا مجموعه ای از کلاس های جمع آوری استاندارد را فراهم می کند که اینترفیس های collection را اجرا می کنند.

      برخی از کلاس ها پیاده سازی های کامل را می توان از آن استفاده کرد و بعضی دیگر کلاس انتزاعی هستند که پیاده سازی اسکلتی دارند.

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

      ردیفکلاس و توضیحات
      ۱AbstractCollection

      بسیاری از رابط مجموعه را اجرا می کند.

      ۲AbstractList

      این نوع Extensions AbstractCollection و بسیاری از رابط لیست را پیاده سازی می کند.

      ۳AbstractSequentialList

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

      ۴LinkedListپیاده سازی یک لیست پیوندی توسط گسترش AbstractSequentialList.
      ۵ArrayListآرایه پویایی را با گسترش AbstractList اجرا می کند.
      ۶AbstractSet

      اجرای بسیاری از اینترفیس های مجموعه

      ۷HashSet برای استفاده با جدول هش ارائه می شود.
      ۸LinkedHashSetHashSet را گسترش می دهد تا تکرار سفارش های درج را اجازه دهد.
      ۹TreeSetمجموعه ای از ذخیره شده در یک درخت را اجرا می کند.
      ۱۰AbstractMap

      بسیاری از اینترفیس های Map را اجرا می کند.

      ۱۱HashMapبرای استفاده از یک جدول هش ارائه شده.
      ۱۲TreeMapبرای استفاده از یک ساختار درختی ارائه شده.
      ۱۳WeakHashMapبرای استفاده از یک جدول هش با کلید های ضعیف ارائه شده است.
      ۱۴LinkedHashMapترتیب قرارگیری در هش را ارئه می دهد.
      ۱۵IdentityHashMapاستفاده از یک مرجع برابر را اجازه می دهد.

      کلاس های وراثتی java.util

      جدول زیر شامل کلاس های وراثتی تعریف شده توسط java.util است که در فصل قبل مورد بحث قرار گرفته است:

      ردیفکلاس و توضیحات مربوطه
      ۱Vectorاین یک آرایه پویا را اجرا می کند که مشابه ArrayList است.
      ۲StackStack یک کلاس زیر مجموعه ای از Vector است که یک پشته استاندارد را ارائه می دهد.
      ۳Dictionaryدیکشنری یک کلاس انتزاعی است که مخزن ذخیره سازی کلید / ارزش را نشان می دهد.
      ۴HashtableHashtable بخشی از java.util اصلی است و اجرای بنیادی یک دیکشنری است.
      ۵Propertiesخواص یک زیر کلاس از Hashtable است.

      این نوع برای نگهداری لیست مقادیری است که در آن کلید یک رشته است.

      ۶BitSetیک نوع خاص از آرایه را ایجاد می کند که ارزش های بیتی داشته و در صورت لزوم گسترش می یابد.

      الگوریتم های Collection

      فریم ورک Collection چندین الگوریتم را تعریف می کند که می تواند به مجموعه ها و نقشه ها اعمال شود.

      این الگوریتم ها به عنوان متد های استاتیک در کلاس Collections تعریف می شوند.

      تعدادی از متد ها می توانند ClassCastException را اجرا کنند.

      فریم ورک Collections سه متغیر استاتیک EMPTY_SET، EMPTY_LIST و EMPTY_MAP را تعریف می کند.

      متغیرهای فوق همه غیر قابل تغییر است.

      چگونه از Iterator استفاده کنیم؟

      اغلب، شما می خواهید از طریق عناصر در یک مجموعه یک چرخه داشته باشید.

      برای مثال، ممکن است بخواهید هر کدام از عناصر را نمایش دهید.

      ساده ترین راه این کار این است که یک تکرار را بکار ببرید، که یک شی است که هر دو Iterator یا رابط ListIterator را اجرا می کند.

      Iterator شما را قادر می سازد تا از طریق یک مجموعه، برای دست آوردن و یا حذف عناصر چرخه. ListIterator Iterator را گسترش دهید.

      Comparator

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

      همچنین این اینترفیس را می توان برای مرتب کردن هر نمونه از هر کلاس (حتی کلاس هایی که ما نمی توانیم آن را تغییر دهیم)استفاده کرد.

      Summary

      مجموعه ای از شیء است که می تواند اشاره به اشیاء دیگر داشته باشد.

      اینترفیس های مجموعه اعلان عملیاتی را می توان بر روی هر نوع مجموعه انجام داد.

      کلاس ها و اینترفیس های فریم ورک مجموعه در بسته java.util قرار دارند.

      کلام آخر

      فریم ورک collection در جاوا طرز استفاده از مجموعه ای از کلاس های مرتبط را نظیر کلاس های ساختمان داده ها را بصورت متمرکز در اختیار برنامه نویس قرار می دهد. در بخش بعدی متدهای generic در جاوا را بررسی خواهیم کرد.

      QR:  جلسه ۲۸ : فریم ورک collection در جاوا
      به اشتراک بگذارید