मैं एक बहुप्रचारित आर्किटेक्चर के लिए एक समवर्ती LinkedHashMap बनाने की कोशिश कर रहा हूं।एक समवर्ती LinkedHashMap लागू करना
यदि मैं Collections#synchronizedMap()
का उपयोग करता हूं, तो मुझे पुनरावृत्ति के लिए सिंक्रनाइज़ किए गए ब्लॉक का उपयोग करना होगा। इस कार्यान्वयन से तत्वों के क्रमिक जोड़ों का कारण बन जाएगा।
यदि मैं ConcurrentSkipListMap
का उपयोग करता हूं तो Comparator
को अनुक्रमिक रूप से संग्रहीत करने के लिए कोई तरीका है, जैसा कि लिंक्ड लिस्ट या कतार में संग्रहीत है।
मैं तीसरे पक्ष के पैकेज के बजाय जावा का निर्माण करना चाहता हूं।
संपादित करें:
इस समवर्ती LinkedHashMap
में, यदि कुंजी नाम हैं, मैं उनके आगमन की कुंजियों को क्रम में डाल करना चाहते हैं। यानी नया मूल्य या तो शुरू या अंत में जोड़ा जाएगा, लेकिन अनुक्रमिक रूप से।
पुनरावृत्त करते समय, LinkedHashMap
को नई प्रविष्टियों के साथ जोड़ा जा सकता है, या हटा दिया जा सकता है। लेकिन पुनरावृत्ति अनुक्रम होना चाहिए जिसमें प्रविष्टियां शामिल की गई थीं।
मैं समझता हूं कि Collections#synchronizedMap()
का उपयोग करके, पुनरावृत्ति के लिए एक सिंक्रनाइज़ ब्लॉक लागू किया जाना चाहिए, लेकिन नक्शा संशोधित किया जा सकता है (प्रविष्टियों को जोड़ा/हटाया जा सकता है) जबकि इसे पुनरावृत्त किया जा रहा है।
आप किस गेटर/सेटर के बारे में बात कर रहे हैं? आप "अनुक्रमिक रूप से स्टोर" करने का प्रयास कर रहे हैं? कृपया अधिक जानकारी दें - यह समझना मुश्किल है कि आप वास्तव में इस समय क्या करने की कोशिश कर रहे हैं। –
आप क्रमशः स्टोर करने की कोशिश कर रहे हैं? यदि आपकी चाबियों का एक निश्चित आदेश है तो आप एक तुलनात्मक लिखने में सक्षम होना चाहिए। शायद आपको अपने मानचित्र में चाबियों और आप उन्हें कैसे आदेश देना चाहते हैं, के बारे में अधिक जानकारी प्रदान करनी चाहिए। –