मुझे यह जानने की ज़रूरत है: जावा में हैश मैप.containsKey() की समय जटिलता क्या है?जावा में हैश मैप.containsKey() की समय जटिलता क्या है?
उत्तर
API doc of
HashMap से
है:
इस कार्यान्वयन बुनियादी कार्यों के लिए लगातार समय प्रदर्शन (हो और डाल प्रदान करता है), मानते हुए हैश फ़ंक्शन तत्वों को बाल्टी के बीच ठीक से फैलता है।
containsKey()
के बाद से सिर्फ एक get()
कि पुनः प्राप्त मूल्य फेंक देता है, यह हे (1) (यह मानते हुए हैश फंक्शन ठीक से काम करता है, फिर से) है।
यही वह है जो मैंने पहले सोचा था। लेकिन यह सही नहीं है। जिगार जोशी के जवाब पर नजर डालें। आपका उत्तर 'हैशटेबल' के लिए सही है जो शून्य मानों की अनुमति नहीं देता है। – AlexR
@AlexR: मुझे लगता है कि आप जिगर के जवाब में कोड को पूरी तरह गलत समझ रहे हैं। इसमें शून्य मूल्यों के साथ बिल्कुल कुछ नहीं है, और लूप केवल एक बाल्टी में प्रविष्टियों की लिंक्ड सूची के माध्यम से लूप करता है, जो ओ (1) है, जैसा कि मेरे उत्तर में दो बार बताया गया है, हैश फ़ंक्शन अपना काम करता है। –
यदि मुझे मानचित्र में पहले से ही चाबियाँ चुननी है, तो यह ओ (एन) है। –
यह सामान्य रूप में O(1)
है, लेकिन सबसे खराब स्थिति में यह O(n)
public boolean containsKey(Object key) {
352 return getEntry(key) != null;
353 }
354
355 /**
356 * Returns the entry associated with the specified key in the
357 * HashMap. Returns null if the HashMap contains no mapping
358 * for the key.
359 */
360 final Entry<K,V> getEntry(Object key) {
361 int hash = (key == null) ? 0 : hash(key.hashCode());
362 for (Entry<K,V> e = table[indexFor(hash, table.length)];
363 e != null;
364 e = e.next) {
365 Object k;
366 if (e.hash == hash &&
367 ((k = e.key) == key || (key != null && key.equals(k))))
368 return e;
369 }
370 return null;
371 }
आम तौर पर ओ (1), लेकिन यदि हम एक खराब हैशकोड फ़ंक्शन का उपयोग कर रहे हैं, तो हमें एक बाल्टी में कई तत्व जोड़ना होगा ताकि यह सबसे खराब स्थिति में ओ (एन) हो।
containsKey
के समय जटिलता, JDK-1.8 में बदल गया है के रूप में दूसरों का उल्लेख किया यह आदर्श मामलों में O(1)
है। हालांकि, टकराव के मामले में जहां keys
Comparable
, डिब्बे भंडारण टकराती तत्वों का अब रेखीय नहीं कर रहे हैं वे कुछ सीमा TREEIFY_THRESHOLD
कहा जाता है, जो 8 के बराबर है से अधिक के बाद,
/**
* The bin count threshold for using a tree rather than list for a
* bin. Bins are converted to trees when adding an element to a
* bin with at least this many nodes. The value must be greater
* than 2 and should be at least 8 to mesh with assumptions in
* tree removal about conversion back to plain bins upon
* shrinkage.
*/
static final int TREEIFY_THRESHOLD = 8;
दूसरे शब्दों में कर रहे हैं, TreeNodes
उपयोग किया जाएगा (TreeMap
में उन लोगों के समान) डिब्बे स्टोर करने के लिए, (यानी: एक लाल-काला पेड़ संरचना) और इससे हमें टकराव के मामले में O(lgn)
जटिलता मिलती है।
ही get(key)
जहां जहां दोनों तरीकों फोन getNode
के लिए लागू होता है आंतरिक
नोट: n यहाँbin
और नहीं HashMap
- 1. हैश टेबल की समय जटिलता
- 2. जावा में सेट की समय जटिलता
- 3. ट्रीसेट पुनरावृत्ति की समय जटिलता क्या है?
- 4. std :: map में find() की समय जटिलता?
- 5. random.sample की समय जटिलता
- 6. योजना में इस कार्य की समय जटिलता क्या है?
- 7. क्लोजर में गिनती कार्य की समय जटिलता क्या है?
- 8. ट्रीसेट में आदेशित संचालन की समय जटिलता क्या है?
- 9. रूबी में ऐरे # यूनिक विधि की समय जटिलता क्या है?
- 10. समय जटिलता()
- 11. समय जटिलता
- 12. स्मृति आवंटन की समय जटिलता
- 13. नींद की तरह की जटिलता क्या है?
- 14. जावा में ट्रीसेट ऑपरेशंस की कम्प्यूटेशनल जटिलता?
- 15. OrderedDictionary की जटिलता क्या है?
- 16. सी ++ में set_intersection की जटिलता क्या है?
- 17. जावा में लिंक्डलिस्ट पर आकार() कॉल की समय जटिलता क्या है?
- 18. पेड़ के ट्रैवर्सल की समय जटिलता क्या है?
- 19. समय जटिलता
- 20. समय जटिलता
- 21. समय जटिलता()
- 22. हैश मैप.containsKey() - कक्षा के लिए कैसे खोज करें?
- 23. स्विच स्टेटमेंट की रनटाइम जटिलता क्या है?
- 24. क्या वेक्टर की जटिलता :: स्पष्ट अनिर्दिष्ट है?
- 25. सेट समय और गति जटिलता
- 26. फ्लेरी के एल्गोरिदम की समय जटिलता
- 27. एल्गोरिदम की कंप्यूटिंग समय जटिलता पर संसाधन
- 28. पायथन सेट ऑपरेशंस की समय जटिलता?
- 29. जावा में हैश फ़ंक्शन क्या है?
- 30. एचटीएमएल डोम लुकअप की समय जटिलता
@OlegSklyar यह सवाल मुझे मदद की क्योंकि मैं लागू करने के लिए किया था के आकार है एक हैश मैप खुद। – trinity420
@ trinity420 तो क्या एपीआई के बारे में कोई सवाल होने पर यह एपीआई दस्तावेज नहीं पढ़ता है? –