مجموعه (Set)
«مجموعه جاوا» یعنی ظرفی برای داده های بدون تکرار. «مجموعه (Set)» فقط اعضای یکتا را نگه می دارد. مثل لیست حضور کلاس که هر اسم یک بار می آید. همچنین ترتیب ثابت نیست، مگر با نوع های خاص.
تعریف ساده Set
«رابط (Interface)» یعنی قرارداد رفتاری برای کلاس ها. Set یک رابط در چارچوب کالکشن هاست. این رابط ذخیره اعضای یکتا را تعریف می کند. بنابراین عضو تکراری قبول نمی شود. این ویژگی جلوی خطاهای تکراری را می گیرد.
تفاوت Set با لیست
لیست اجازه تکرار می دهد و ترتیب را نگه می دارد. اما Set تکرار ندارد و لزوماً بدون ترتیب است. همچنین دسترسی اندیسی در لیست ممکن است. در Set دسترسی با اندیس نداریم.
کلاس های مهم Set
سه پیاده سازی رایج داریم: HashSet برای سرعت و بی نظمی، TreeSet برای مجموعه مرتب شده، و LinkedHashSet برای حفظ ترتیب افزودن.
نکته: اگر فقط یکتا بودن مهم است، HashSet گزینه ساده ای است. اگر ترتیب ورود مهم است، LinkedHashSet را ببین.
متدهای رایج Set
متد «add()» افزودن عضو جدید است. اگر عضو وجود داشته باشد، افزوده نمی شود. «remove()» حذف می کند. «contains()» وجود عضو را می سنجد. «size()» تعداد اعضا را می دهد. «clear()» همه چیز را خالی می کند.
مقایسه سریع با لیست
برای داده های بدون تکرار از Set استفاده کن. برای دسترسی اندیسی و ترتیب قطعی از لیست (List) بهره ببر. هرکدام ابزار جای درست خود را دارد.
تمرین سه مرحله ای
- یک مجموعه انتخاب کن؛ مثلاً HashSet.
- چند مقدار تکراری اضافه کن.
- با size و contains نتیجه یکتا بودن را بررسی کن.
نکته: برای شناخت چارچوب، صفحه کالکشن ها (Collections) را هم ببین. سپس به HashSet وارد شو.
جمع بندی سریع
- Set تکراری ها را حذف می کند.
- ترتیب در Set تضمین نمی شود.
- HashSet سریع و ساده است.
- LinkedHashSet ترتیب افزودن را نگه می دارد.
- TreeSet اعضا را مرتب نگه می دارد.
