تفاوت کلیدی – TreeSet در مقابل TreeMap
آرایه برای ذخیره مجموعه ای از عناصر داده از همان نوع استفاده می شود. اکثر زبان های برنامه نویسی از آرایه ها پشتیبانی می کنند. حتی اگر یک آرایه بتواند چندین مقدار را ذخیره کند. یک عیب بزرگ وجود دارد پس از ایجاد آرایه، امکان تغییر آن وجود ندارد. اگر برنامه نویس آرایه ای از 10 عنصر را اعلام کند، پس نمی تواند 15 عنصر را ذخیره کند. هنگامی که برنامه نویس آرایه ای از 10 عنصر را اعلام می کند و تنها 5 عنصر را ذخیره می کند، بقیه حافظه اختصاص داده شده هدر می رود. زبان های برنامه نویسی مانند جاوا دارای مجموعه هایی برای ذخیره عناصر داده به صورت پویا هستند. تعدادی مجموعه وجود دارد. مجموعه ها به انجام افزودن، حذف عناصر و سایر عملیات کمک می کنند.رابط پایه به عنوان مجموعه شناخته می شود. Set، List و Queue برخی از اینترفیس هایی هستند که رابط Collection را گسترش می دهند. Map یک رابط سلسله مراتبی مجموعه است، اما رابط مجموعه را گسترش نمی دهد. TreeSet کلاسی است که رابط Set را پیاده سازی می کند و عناصر را به ترتیب صعودی ذخیره می کند. TreeMap کلاسی است که رابط نقشه را پیاده سازی می کند و جفت های کلید و مقادیر را به ترتیب صعودی ذخیره می کند. این تفاوت کلیدی است. این مقاله به تفاوت بین TreeSet و TreeMap می پردازد.
TreeSet چیست؟
TreeSet کلاسی است که رابط Set را پیاده سازی می کند. TreeSet عناصر منحصر به فرد را حفظ می کند. TreeSet رابط NavigableSet را پیاده سازی می کند. رابط Navigable رابط های SortedSet، Set، Collection و Iterable را به ترتیب سلسله مراتبی گسترش می دهد. TreeSet عناصر را به ترتیب صعودی ذخیره می کند. اگر ترتیب درج A، C، B باشد، TreeSet آنها را به صورت A، B، C ذخیره می کند. روش های TreeSet وجود دارد. متد add برای افزودن یک عنصر به مجموعه استفاده می شود.روش remove برای حذف یک عنصر مشخص استفاده می شود. روش شفاف برای حذف تمام عناصر استفاده می شود. اگر عنصر مشخص شده در مجموعه موجود باشد، متد contain یک مقدار true برمی گرداند. آنها برخی از روش های ارائه شده توسط TreeSet هستند. به برنامه زیر مراجعه کنید.
شکل 01: برنامه با استفاده از TreeSet
طبق برنامه بالا، Treeset یک شی از نوع TreeSet است. می تواند رشته ها را ذخیره کند. عناصر با استفاده از روش افزودن اضافه می شوند. ترتیب درج A، C، D و B است. با استفاده از تکرار کننده، مقادیر ذخیره شده روی صفحه چاپ می شوند. عناصر به ترتیب A، B، C، D ذخیره می شوند. بنابراین، TreeSet ترتیب صعودی عناصر مجموعه را حفظ می کند. اگر عنصر دیگری به عنوان "D" وجود داشته باشد، چاپ نمی شود زیرا عنصر D از قبل در مجموعه وجود دارد. همیشه عناصر منحصر به فرد را ذخیره می کند.
TreeMap چیست؟
TreeMap کلاسی است که رابط نقشه را پیاده سازی می کند. نقشه از جفت های کلید-مقدار پشتیبانی می کند. هر جفت کلید، یک ورودی است. هر کلید منحصر به فرد است و دارای یک مقدار متناظر است. متد containKey برای یافتن یک کلید خاص استفاده می شود در حالی که متد containValue برای یافتن یک مقدار خاص استفاده می شود. از متد get برای یافتن مقدار مربوط به کلید داده شده استفاده می شود. روش put برای ذخیره یک مقدار با کلید داده شده استفاده می شود. همچنین امکان حذف یک عنصر در یک کلید خاص با استفاده از روش حذف وجود دارد. اینها چند روش متداول رابط نقشه هستند. به جستجو، درج و حذف عناصر بر اساس کلید کمک می کند. کلاس TreeMap NavigableMap را پیاده سازی می کند. NavigableMap SortedMap را گسترش می دهد. SortedMap نقشه را گسترش می دهد. بنابراین می توان از روش های Map با TreeMap استفاده کرد. به برنامه زیر مراجعه کنید.
شکل 02: برنامه با استفاده از TreeMap
طبق برنامه فوق، یک شی از TreeMap ایجاد می شود. برنامه نویس می تواند عناصر را با استفاده از شی اضافه کند. روش put برای درج کلید، جفت مقدار استفاده می شود. روش دریافت با کلید خاص برای واکشی عناصر استفاده می شود. برنامه نویس می تواند از Map. Entry برای چاپ تمام کلیدها و مقادیر استفاده کند. هنگام مشاهده خروجی، ترتیب درج شده را حفظ نمی کند. این عناصر را به ترتیب صعودی ذخیره می کند.
شباهتهای TreeSet و TreeMap چیست؟
- هر دو TreeSet و TreeMap در سلسله مراتب مجموعه هستند.
- هم TreeSet و هم TreeMap ترتیب صعودی را حفظ می کنند.
- هم TreeSet و هم TreeMap می توانند بسیاری از عناصر را ذخیره و دستکاری کنند.
تفاوت بین TreeSet و TreeMap چیست؟
TreeSet در مقابل TreeMap |
|
TreeSet کلاسی است که رابط Set را پیاده سازی می کند و عناصر را به ترتیب صعودی ذخیره می کند. | TreeMap کلاسی است که رابط نقشه را پیادهسازی میکند و جفتهای کلید و مقادیر را به ترتیب صعودی ذخیره میکند. |
رابط پیادهسازی شده | |
TreeSet رابط Set را پیاده سازی می کند. | TreeMap رابط نقشه را پیاده سازی می کند. |
خلاصه - TreeSet در مقابل TreeMap
آرایه برای ذخیره مجموعه ای از عناصر استفاده می شود، اما به ذخیره پویا عناصر کمکی نمی کند. زبان های برنامه نویسی مانند جاوا حاوی مجموعه هایی برای ذخیره عناصر داده به صورت پویا هستند. Collection کلاس پایه در سلسله مراتب مجموعه است. این شامل کلاس ها و رابط هایی برای انجام عملیاتی مانند افزودن، حذف عناصر است. Set و Map دو رابط سلسله مراتبی مجموعه هستند. TreeSet کلاسی است که رابط Set را پیاده سازی می کند و عناصر را به ترتیب صعودی ذخیره می کند. TreeMap کلاسی است که رابط نقشه را پیاده سازی می کند و جفت های کلید و مقادیر را به ترتیب صعودی ذخیره می کند. این تفاوت بین TreeSet و TreeMap است.