में तत्वों का क्रम कैसे रखें मेरे पास हैशटेबल है। मान() विधि कुछ क्रम में मूल्यों को अलग करता है जिसमें मुझे सम्मिलित किया जाता है। मैं मूल्यों को उसी क्रम में कैसे प्राप्त कर सकता हूं जैसा मैंने डाला था? LinkedHashmap का उपयोग करना एक विकल्प है लेकिन यह सिंक्रनाइज़ नहीं है।हैशटेबल
हैशटेबल
उत्तर
LinkedHashMap
का उपयोग करें।
उम्मीद के मुताबिक यात्रा आदेश के साथहैश तालिका और
Map
इंटरफ़ेस का लिंक्ड सूची कार्यान्वयन, । यह कार्यान्वयनHashMap
से में भिन्न है कि यह एक दोगुनी-लिंक्ड सूची अपनी सभी प्रविष्टियों के माध्यम से चल रहा है। यह लिंक्ड सूची पुनरावृत्ति ऑर्डरिंग को परिभाषित करती है, जो आमतौर पर ऑर्डर होती है जिसमें मानचित्र (सम्मिलन-आदेश) में कुंजियां डाली गई थीं। ध्यान दें कि प्रविष्टि आदेश प्रभावित नहीं होता है यदि कुंजी मानचित्र में फिर से डाला गया है। (ए कुंजी कश्मीर एक नक्शे के मीटर में अगरm.put(k, v)
शुरू हो जाती है जबm.containsKey(k)
true
तुरंत पहले मंगलाचरण में हो जाएंगे पुनः लगाए।)
Collections.synchronizedMap()
के साथ संयुक्त।
तो, उदाहरण के लिए:
Map<String, String> map = Collections.synchronizedMap(
new LinkedHashMap<String, String>());
स्पष्टीकरण के लिए: यदि मैं एक समय में इस 'लिंक्ड हैशमैप' को 1 ट्रेड तक पहुंचने की सोच नहीं रहा हूं, तो क्या इसे अभी भी सिंक्रनाइज़ करने की अनुशंसा की जाएगी? या 'लिंक्ड हैश मैप' अपने आप पर पर्याप्त माना जाएगा? – blo0p3r
@ blo0p3r 'LinedHashMap' अपने आप पर पर्याप्त होना चाहिए। –
एक हैश तालिका स्वाभाविक रूप से अनियंत्रित है, इसलिए आप गलत डेटा संरचना का उपयोग कर रहे हैं। चूंकि आप यह निर्दिष्ट नहीं करते कि आप किस भाषा का उपयोग कर रहे हैं, मैं वैकल्पिक विकल्प का सुझाव नहीं दे सकता, लेकिन आपको किसी प्रकार की ऑर्डर की गई कुंजी/मान सेट की आवश्यकता है।
मैं जावा का उपयोग कर रहा हूं। जेडीके 1.6 –
मैं बहुत यकीन है कि कारण hashtables अवर्गीकृत हैं भंडारण और पुनर्प्राप्ति गति सहायता करने के लिए है हूँ। इस वजह से मैं आदेश को बनाए रखने के लिए बाहरी संरचना का उपयोग करने और मूल्यों को संग्रहित करने के लिए हैशटेबल का उपयोग करने का सुझाव दूंगा (तेज़ लुकअप के लिए)।
आप या तो एक LinkedHashMap
लपेट और सिंक्रनाइज़ या आप Collections.synchronizedMap
उपयोगिता का उपयोग बनाने के लिए कर सकती एक तुल्यकालन LinkedHashMap
:
Map m = Collections.synchronizedMap(new LinkedHashMap(...));
JavaDoc से:
से अधिक थ्रेड किसी लिंक किए गए हैश मानचित्र तक पहुंचते हैं तो समवर्ती रूप से, और धागे में से कम से कम एक नक्शा संरचनात्मक रूप से संशोधित करता है, इसे बाहरी रूप से सिंक्रनाइज़ किया जाना चाहिए। यह आमतौर पर कुछ ऑब्जेक्ट पर सिंक्रनाइज़ करके पूरा किया जाता है जो स्वाभाविक रूप से मानचित्र को समाहित करता है। यदि ऐसी कोई वस्तु मौजूद नहीं है, तो संग्रह संग्रह। सिंक्रनाइज़मैप मैप विधि का उपयोग करके "लपेटा" होना चाहिए। यह सबसे अच्छा नक्शा
बहुत बहुत धन्यवाद .. लेकिन क्या यह एक प्रदर्शन हिट होगा? –
प्रदर्शन ओवरहेड लापरवाही (शाब्दिक रूप से नैनोसेकंड) होगा। – Adamski
तो jdk1.6 आप आदेश दिया मानचित्र EnumMap और LinkedHashMap के केवल दो प्रकार के लिए आकस्मिक अनसिंक्रनाइज़्ड पहुँच को रोकने के निर्माण के समय पर किया जाता है,। उनमें से दोनों सिंक्रनाइज़ नहीं हैं।तुम सिर्फ आदेश को याद करने की जरूरत है,
Map m = Collections.synchronizedMap(new LinkedHashMap(...));
का उपयोग आप क्रमबद्ध तो का उपयोग ConcurrentSkipListMap
- 1. हैशटेबल
- 2. हैशटेबल
- 3. हैशटेबल
- 4. अद्यतन हैशटेबल किसी अन्य हैशटेबल द्वारा?
- 5. सी # हैशटेबल
- 6. जब हैशटेबल
- 7. हैशटेबल ओवरराइडिंग
- 8. सी ++ में हैशटेबल?
- 9. PSObject, हैशटेबल और PSCustomObject
- 10. हैशटेबल के जावा सरणी
- 11. .Net हैशटेबल - बनाम ContainsKey
- 12. जावा हैशटेबल 'put'
- 13. हैशटेबल बनाम शब्दकोश
- 14. डिक्शनरी और हैशटेबल
- 15. जावा हैशटेबल लोड फैक्टर
- 16. अपाचे वेग: हैशटेबल?
- 17. जावा में ConcurrentHashMap और हैशटेबल
- 18. क्या एसटीएल में हैशटेबल है?
- 19. शब्दकोश/H ++ में हैशटेबल ऑब्जेक्ट?
- 20. पूर्णांक अंतराल के भीतर हैशटेबल कुंजी
- 21. Powerhell हैशटेबल मूल्य में कैसे संलग्न करें?
- 22. जावा में हैशटेबल से हटना और हटाना
- 23. हैशटेबल कितनी मेमोरी का उपयोग करता है?
- 24. जावा हैशटेबल # हैशकोड() कार्यान्वयन टूटा हुआ है?
- 25. क्या हैशटेबल को सॉर्ट करना संभव है?
- 26. शब्दकोश के लिए हैशटेबल <> सिंक्रूट।
- 27. java.util है। हैशटेबल थ्रेड सुरक्षित है?
- 28. वी 8-जैसे हैशटेबल सी # के लिए?
- 29. हैशटेबल हैशिंग नकारात्मक हैशकोड से बचें
- 30. हैशटेबल और डिक्शनरी से संबंधित साक्षात्कार प्रश्न
कौन सी भाषा का प्रयोग कर रहे हैं तो? –
LinkedHashMap जावा का एक हिस्सा है। – jimyi
मैं जावा का उपयोग कर रहा हूँ। जेडीके 1.6 –