इस पोस्ट में, हम जावा से जुड़े hashmap और treemap के बीच अंतर को समझेंगे।
HashMap
यह जावा में एक हैश टेबल है।
यह 'map' इंटरफेस के कार्यान्वयन पर आधारित है।
यह 'Map', 'Cloneable', और 'Serializable' इंटरफेस को इम्प्लीमेंट करता है।
यह एक सिंगल नल की अनुमति देता है।
यह मल्टीपल नल मानों की भी अनुमति देता है।
यह TreeMap की तुलना में तेज है।
ऐसा इसलिए है क्योंकि यह 'get' और 'put' जैसे ऑपरेशन्स के लिए कॉन्स्टेंट-टाइम परफॉरमेंस यानी O(1) प्रदान करता है।
यह कुंजियों पर सॉर्टिंग नहीं करता।
इसलिए यह HashMap में विषम तत्वों की अनुमति देता है।
यह तत्वों के क्रम को बनाए नहीं रखता।
इसका उपयोग तब किया जा सकता है जब क्रमबद्ध क्रम में key-value pair की आवश्यकता न हो।
यह कुंजियों की तुलना के लिए Object क्लास के 'equals' मेथड का उपयोग करता है।
Map क्लास का 'equals' मेथड इसे ओवरराइड करता है।
इसमें केवल 'KeySet', 'get', 'put' जैसे बेसिक मेथड्स होते हैं।
TreeMap
यह जावा में उपयोग की जाने वाली एक ट्री संरचना है।
यह 'map' इंटरफेस के कार्यान्वयन पर आधारित है।
यह 'NavigableMap', 'Cloneable', और 'Serializable' इंटरफेस को इम्प्लीमेंट करता है।
यह नल कुंजियों की अनुमति नहीं देता।
यह मल्टीपल नल मानों की अनुमति देता है।
यह सॉर्ट होने के कारण कुंजी के रूप में सजातीय मानों की अनुमति देता है।
यह HashMap की तुलना में धीमा है क्योंकि यह add(), remove() और contains() जैसे अधिकांश ऑपरेशन्स के लिए O(log(n)) जटिलता प्रदान करता है।
यह आंतरिक रूप से Red-Black ट्री का उपयोग करता है।
Red black ट्री एक सेल्फ-बैलेंसिंग बाइनरी सर्च ट्री है।
कुंजियों की तुलना के लिए compareTo() मेथड का उपयोग किया जाता है।
इसमें tailMap(), firstKey(), lastKey(), pollFirstEntry(), pollLastEntry() जैसी कई कार्यक्षमताएं हैं।
तत्व आरोही क्रम में सॉर्टेड हैं, जिसे नेचुरल ऑर्डर भी कहा जाता है।
इसका उपयोग तब किया जाता है जब आवश्यकता क्रमबद्ध क्रम में key-value pair की होती है।