تفاوت کلیدی – HashMap در مقابل TreeMap
در برنامه نویسی، مکانیسم های مختلفی برای جمع آوری داده ها وجود دارد. مجموعه ها یکی از روش های ذخیره سازی داده ها است. زبان های برنامه نویسی مانند جاوا از مجموعه ها استفاده می کنند. این یک چارچوب با کلاس ها و رابط ها برای ذخیره و دستکاری مجموعه ای از عناصر داده است. در یک آرایه معمولی، تعداد ثابتی از عناصر برای ذخیره وجود دارد. این یک محدودیت آرایه است. در عوض، برنامه نویس می تواند از مجموعه ها استفاده کند. عملیات هایی مانند درج، حذف، مرتب سازی و جستجو را می توان با استفاده از مجموعه ها انجام داد. در جاوا، رابط نقشه به مجموعه ها تعلق دارد. نقشه برای نمایش دادهها در جفتهای کلید و ارزش استفاده میشود.فقط کلیدهای منحصر به فرد وجود دارد و هر کدام دارای یک مقدار متناظر هستند. HashMap و TreeMap کلاس هایی هستند که رابط Map را پیاده سازی می کنند. HashMap یک کلاس مجموعه مبتنی بر نقشه است که برای ذخیرهسازی جفتهای کلید و مقادیر که نظم خاصی را در عناصر داده حفظ نمیکنند، استفاده میشود. TreeMap یک کلاس مجموعه مبتنی بر نقشه است که برای ذخیرهسازی جفتهای کلید و ارزش که ترتیب صعودی عناصر داده را حفظ میکنند، استفاده میشود. تفاوت اصلی بین HashMap و TreeMap این است که HashMap ترتیب خاصی را در عناصر داده حفظ نمی کند در حالی که TreeMap ترتیب صعودی عناصر داده را حفظ می کند.
HashMap چیست؟
HashMap کلاسی است که رابط نقشه را پیاده سازی می کند. کلاس AbstractMap را گسترش می دهد و رابط Map را پیاده سازی می کند. HashMap شامل جفتهای کلید و مقدار است. هر عنصر منحصر به فرد است. پیدا کردن عناصر در HashMap با استفاده از کلید آسان است. اعلام HashMap به شرح زیر است.
کلاس عمومی HashMap را گسترش می دهد AbstractMap پیاده سازی Map, Cloneable, Serializable
K به کلید اشاره دارد در حالی که V به مقدار مربوط به آن کلید خاص اشاره دارد. هر جفت کلید، ورودی HashMap است.
شکل 01: رابط نقشه
برای درک HaspMap سناریویی را به شرح زیر فرض کنید. اگر برنامهنویس بخواهد مجموعهای از نامهای دانشآموز و اعداد فهرست مربوطه را در آنجا ذخیره کند، میتواند از HashMap استفاده کند. از نام دانش آموزان برای یافتن اعداد شاخص استفاده می شود. بنابراین، نام دانشآموز کلید است در حالی که اعداد فهرست مقادیر هستند.
شکل 02: برنامه HashMap با استفاده از جاوا
طبق برنامه فوق، یک شی از HashMap ایجاد می شود.سپس برنامه نویس می تواند عناصر را با استفاده از آن شی اضافه کند. مقادیر را می توان با استفاده از روش put وارد کرد. برای واکشی مقادیر، برنامه نویس باید از روش get با کلید استفاده کند. هنگام استفاده از studentList.get ("150"); نام مربوط به آن شاخص را که Ann است چاپ می کند. اگر برنامه نویس بخواهد همه مقادیر را دریافت کند، می تواند از Map. Entry برای چاپ همه کلیدها و مقادیر استفاده کند. هنگام مشاهده خروجی، می توان دید که HashMap نظم خاصی را حفظ نمی کند. این عناصر را به ترتیب درج شده چاپ نمی کند. عناصر به ترتیب تصادفی چاپ می شوند.
TreeMap چیست؟
The TreeMap کلاسی در جاوا است که رابط نقشه را پیاده سازی می کند. مشابه HashMap، برای ذخیرهسازی جفتهای کلید، ارزش اما به ترتیب صعودی نیز استفاده میشود. TreeMap NavigableMap را پیاده سازی می کند و NavigableMap SortedMap و SortedMap نقشه را گسترش می دهد. هر عنصر منحصر به فرد است. اعلان نقشه درختی به شرح زیر است.
کلاس عمومی TreeMap گسترش AbstractMap پیاده سازی NavigableMap، Cloneable، Serializable
K به کلید اشاره دارد در حالی که V به مقدار مربوط به آن کلید خاص اشاره دارد. هر جفت کلید، یک ورودی از TreeMap است.
شکل 03: برنامه TreeMap با استفاده از جاوا
طبق برنامه فوق، یک شی از TreeMap ایجاد می شود. سپس برنامه نویس می تواند عناصر را با استفاده از آن شی اضافه کند. مقادیر را می توان با استفاده از روش put وارد کرد. برای واکشی مقادیر، برنامه نویس باید از روش get با کلید استفاده کند. هنگام استفاده از studentList.get ("150"); نام مربوط به آن شاخص را که Ann است چاپ می کند. اگر برنامه نویس بخواهد همه مقادیر را دریافت کند، می تواند از Map. Entry برای چاپ همه کلیدها و مقادیر استفاده کند. هنگام مشاهده خروجی، می توان مشاهده کرد که TreeMap نظم خاصی را حفظ می کند. عناصر به ترتیب صعودی چاپ می شوند.
شباهتهای HashMap و TreeMap چیست؟
- هم HashMap و هم TreeMap رابط نقشه را پیاده سازی می کنند.
- HashMap و TreeMap می توانند بسیاری از عناصر را ذخیره و دستکاری کنند.
- HashMap و TreeMap دارای جفتهای کلید و مقادیر هستند.
- هم HashMap و هم TreeMap می توانند مقادیر تهی زیادی داشته باشند.
- هیچ محدودیتی برای تعداد عناصری که می توان هم در HashMap و هم در TreeMap ذخیره کرد وجود ندارد.
تفاوت بین HashMap و TreeMap چیست؟
HashMap در مقابل TreeMap |
|
A HashMap یک کلاس مجموعه مبتنی بر نقشه است که برای ذخیرهسازی جفتهای کلید و مقادیر استفاده میشود که ترتیب خاصی را در عناصر داده حفظ نمیکنند. | A TreeMap یک کلاس مجموعه مبتنی بر نقشه است که برای ذخیرهسازی جفتهای کلید و مقادیر استفاده میشود که ترتیب صعودی عناصر داده را حفظ میکند. |
سفارش | |
HashMap نظم را حفظ نمی کند. | TreeMap ترتیب صعودی را حفظ می کند. |
کلید تهی | |
HashMap می تواند حاوی یک کلید تهی باشد. | TreeMap نمی تواند کلید تهی داشته باشد. |
عملکرد | |
HashMap سریعتر از TreeMap است. | TreeMap کندتر از HashMap است. |
خلاصه – HashMap در مقابل TreeMap
زبان های برنامه نویسی مانند جاوا حاوی چارچوب مجموعه هستند. در آرایه ها، تعداد عناصر ثابتی می تواند وجود داشته باشد. بنابراین، اندازه آرایه باید در ابتدا مقداردهی شود. در مجموعه ها، برنامه نویس می تواند عناصر زیادی را در صورت نیاز ذخیره کند.مقدار خاصی برای ذخیره وجود ندارد. نقشه یک رابط متعلق به چارچوب مجموعه است. HashMap یک کلاس مجموعه مبتنی بر نقشه است که برای ذخیرهسازی جفتهای کلید و مقادیر که نظم خاصی در عناصر داده حفظ نمیکنند استفاده میشود. TreeMap یک کلاس مجموعه مبتنی بر نقشه است که برای ذخیرهسازی جفتهای کلید و مقادیر استفاده میشود که ترتیب صعودی عناصر داده را حفظ میکند. این مقاله تفاوت بین HashMap و TreeMap را که رابط نقشه را پیاده سازی می کند مورد بحث قرار می دهد. تفاوت HashMap و TreeMap در این است که HashMap ترتیب خاصی را در عناصر داده حفظ نمی کند در حالی که TreeMap ترتیب صعودی عناصر داده را حفظ می کند.