tl; डॉ
Map< Integer , String >कुंजी द्वारा क्रमबद्ध क्रम में रखने के लिए SortedMap/ NavigableMapइंटरफेस लागू करने वाले दो वर्गों में से किसी एक का उपयोग करें:
TreeMap
ConcurrentSkipListMap
यदि एक ही धागे के भीतर मानचित्र में हेरफेर किया जाता है, तो पहले का उपयोग करें TreeMap। यदि धागे में हेरफेर, दूसरे का उपयोग करें ConcurrentSkipListMap।
विवरण के लिए, नीचे दी गई तालिका और निम्न चर्चा देखें।
विवरण
यहां एक ग्राफिक टेबल है जिसे मैंने Mapजावा 11 के साथ बंडल किए गए दस कार्यान्वयन की विशेषताओं को दिखाया है ।
NavigableMapइंटरफ़ेस क्या है SortedMapपहली जगह में किया जाना चाहिए था। SortedMapतार्किक रूप से हटा दिया जाना चाहिए, लेकिन के रूप में कुछ 3rd पक्ष के मानचित्र कार्यान्वयन इंटरफ़ेस का उपयोग किया जा सकता है नहीं हो सकता।
जैसा कि आप इस तालिका में देख सकते हैं, केवल दो वर्ग SortedMap/ NavigableMapइंटरफेस लागू करते हैं :
ये दोनों कुंजी क्रम में रखते हैं, या तो उनके प्राकृतिक क्रम compareToसे Comparable( https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ Comparable.html ) इंटरफ़ेस) या आपके द्वारा Comparatorपास किए गए कार्यान्वयन से। इन दो वर्गों के बीच अंतर यह है कि एक दूसरे के, है ConcurrentSkipListMap, है धागा सुरक्षित , अत्यधिक समवर्ती ।
नीचे तालिका में Iteration ऑर्डर कॉलम भी देखें ।
- जिस
LinkedHashMapक्रम में उन्हें मूल रूप से डाला गया था, उसी क्रम से वर्ग अपनी प्रविष्टियाँ लौटाता है ।
EnumMapउस क्रम में प्रविष्टियाँ लौटाता है जिसके द्वारा कुंजी का एनम वर्ग परिभाषित किया गया है । उदाहरण के लिए, किस कर्मचारी का एक नक्शा सप्ताह के किस दिन को कवर कर रहा है ( Map< DayOfWeek , Person >) DayOfWeekजावा में निर्मित एनम वर्ग का उपयोग करता है । उस एनम को सोमवार पहले और रविवार आखिरी के साथ परिभाषित किया गया है। तो उस क्रम में एक पुनरावृत्त में प्रविष्टियाँ दिखाई देंगी।
अन्य छह कार्यान्वयन उस क्रम के बारे में कोई वादा नहीं करते हैं जिसमें वे अपनी प्रविष्टियों की रिपोर्ट करते हैं।
