Data Structures - Hashmap vs LinkedHashMap vs TreeMap?
[ answered ]

هنگام انتخاب یکی از انواع مپ ۲ مورد را باید مد نظر داشت

۱. مرتب سازی Sorting

Hashmap با استفاده از Hash table پیاده سازی شده، در نتیجه هیچ ترتیبی برای کلیدهای مپ وجود ندارد

Treemap با استفاده از ساختار درختی Red-Black پیاده سازی شده. در نتیجه همواره بر اساس کلیدها مرتب است آبجکت هایی که به عنوان کلید قرار داده می شوند می بایست اینترفیس Comparable‌ و در نتیجه متد compareTo رو پیاده سازی کرده باشند. مپ آبجکت های کلید را با این متد مقایسه کرده و مرتب میکند

LinkedHashMap شبیه لینک لیست است، در نتیجه به همان ترتیبی که آبجکت ها insert می شوند باقی می مانند و ترتیب‌شان حفظ می شود

۲. کارایی Performance

HashMap همه عملیات Get/Put/Remove/Contains با O(1) انجام می شود حداکثر یک کلید می تواند نال باشد Synchronized نیست

TreeMap عملیات Get/Put/Delete با O(logN) انجام می شود هیچ کلیدی نمی تواند نال باشد Synchronized نیست

LinkedHashMap عملیات Get/Put/Delete با O(1) حداکثر یک کلید می تواند نال باشد Synchronized نیست