2012-12-07 16 views
9

का उपयोग करने के लिए कोई मुझे बता सकता है कि TREEMAP का उपयोग क्यों करें और मैं This link पर गया लेकिन मुझे मेरा जवाब नहीं मिला।क्यों और कब TreeMap

मेरी सोच के अनुसार हम आपकी कुंजी के अनुसार डेटा सॉर्ट प्राप्त करने के लिए ट्रेमैप का उपयोग करते हैं और वही हम अन्य तरीकों से भी प्राप्त कर सकते हैं।

+1

अन्य तरीके हैं, लेकिन यह सबसे आसान है। महत्वपूर्ण मूल्य जोड़ों को हल करने का प्रस्ताव आप अन्य तरीके से कैसे करते हैं? – jlordo

+0

"मेरी सोच के अनुसार हम आपकी कुंजी के अनुसार डेटा सॉर्ट प्राप्त करने के लिए ट्रेमैप का उपयोग करते हैं और वही हम अन्य तरीकों से भी प्राप्त कर सकते हैं।" - ठीक ठीक! – xagyg

+0

@jlordo तुलनीय और तुलनित्र इंटरफेस। –

उत्तर

4

TreeMap

एक लाल-काले पेड़ आधारित NavigableMap कार्यान्वयन। नक्शा को अपनी चाबियों के प्राकृतिक क्रम के अनुसार क्रमबद्ध किया जाता है, या नक्शा निर्माण समय पर प्रदान किए गए एक तुलनाकर्ता द्वारा, किस कन्स्ट्रक्टर का उपयोग किया जाता है, इस पर निर्भर करता है।

यह कार्यान्वयन, केई, प्राप्त, रख और निकालने के लिए गारंटीकृत लॉग (एन) समय लागत प्रदान करता है। एल्गोरिदम कॉर्मन, लीज़रसन, और रिवेस्ट के एल्गोरिदम के परिचय में उन लोगों के अनुकूलन हैं।

इस डेटा संरचना जब आप केवल आरोही नहीं आदेश दिया कुंजी की आवश्यकता का प्रयोग करें आप comparator पारित कर सकते हैं TreeMap(Comparator<? super K> comparator) निर्माता के लिए अपनी खुद की छंटाई तर्क लिखने के लिए। साथ ही यह स्व-संतुलन बाइनरी खोज पेड़ का एक प्रकार है।

6

आपके द्वारा लिंक किया गया जावाडोक स्पष्ट रूप से बताता है कि यह navigable और sorted मानचित्र इंटरफेस का कार्यान्वयन है। जब आप इस कार्यक्षमता की आवश्यकता होती है तो आप इसका इस्तेमाल करेंगे।

3

यह कुछ कुंजी द्वारा क्रमबद्ध वस्तुओं को रखने का प्रभावी तरीका है और आपके लिए यादृच्छिक पहुंच भी महत्वपूर्ण है। इस डेटा संरचना के साथ आप क्रम में पुन: प्रयास कर सकते हैं।

यदि यादृच्छिक अभिगम की आवश्यकता नहीं है तो सॉर्ट किए गए सेट/बैग या सूची का उपयोग करें।

Why is there no SortedList in Java?

14

मान लीजिए कि आप एक शब्दकोश को लागू करने और, यदि आप एक ट्री-मैप का एक संयोजन है और एक TreeSet उपयोग कर सकते हैं वर्णमाला के क्रम में इसे प्रिंट करना चाहते हैं: सभी छंटाई स्वचालित रूप से किया जाता है

public static void main(String args[]) { 
    Map<String, Set<String>> dictionary = new TreeMap<>(); 
    Set<String> a = new TreeSet<>(Arrays.asList("Actual", "Arrival", "Actuary")); 
    Set<String> b = new TreeSet<>(Arrays.asList("Bump", "Bravo", "Basic")); 

    dictionary.put("B", b); 
    dictionary.put("A", a); 

    System.out.println(dictionary); 
} 

और यह प्रिंट:

{एक = [वास्तविक, मुंशी, आगमन], बी = [बेसिक, ब्रावो, टक्कर]}

आप संरचनाओं को मैन्युअल रूप से भी क्रमबद्ध कर सकते थे लेकिन ट्रीमैप/सेट का उपयोग करके अधिक कुशल हो सकता है, कोड की रेखाओं की संख्या (= बग की संख्या) को कम कर देता है और अधिक पठनीय है।

संबंधित मुद्दे