कंप्यूटर साइंस में, एक एसोसिएटिव एरे, मैप, सिंबल टेबल, या डिक्शनरी एक एब्स्ट्रैक्ट डेटा टाइप है जो (कुंजी, मान) जोड़े के संग्रह से बना होता है, जैसे कि प्रत्येक संभावित कुंजी संग्रह में अधिकतम एक बार दिखाई देती है। ध्यान दें कि एक डिक्शनरी को मैप के रूप में भी जाना जाता है।
डिक्शनरी समस्या एक क्लासिक कंप्यूटर साइंस समस्या है: 'सर्च', 'डिलीट', और 'इन्सर्ट' ऑपरेशन्स के दौरान डेटा के एक सेट को बनाए रखने वाली डेटा स्ट्रक्चर डिजाइन करने का कार्य। डिक्शनरी के कई अलग-अलग प्रकार के कार्यान्वयन हैं।
- हैश टेबल कार्यान्वयन
- ट्री-आधारित कार्यान्वयन (सेल्फ-बैलेंसिंग और अनबैलेंस्ड ट्रीज़)
- लिस्ट आधारित कार्यान्वयन
डिक्शनरी का उपयोग कब करें
डिक्शनरी सिल्वर बुलेट नहीं हैं और हर मौके पर उपयोग नहीं की जानी चाहिए। वे कई परिदृश्यों में उपयोगी हैं, लेकिन डिक्शनरी का उपयोग करके किसी समस्या को हल करने का निर्णय लेने से पहले आपको निम्नलिखित बिंदुओं को ध्यान में रखना होगा।
- इन्सर्ट्स आमतौर पर धीमे होते हैं, रीड्स ट्रीज़ से तेज़ होते हैं।
- तेज़ लुकअप के लिए इनका उपयोग करें, उदाहरण के लिए, डेटा कैश करने के लिए, डेटाबेस इंडेक्स करने के लिए, सिंबल टेबल्स, आदि।
- जब एलिमेंट्स का क्रम मायने नहीं रखता।
- जब सभी एलिमेंट कुंजियाँ यूनिक हों।
हम जिन मेथड्स को लागू करेंगे
डिक्शनरीज़ में आमतौर पर एक अच्छी तरह से परिभाषित API होता है। हम नीचे परिभाषित एक बहुत ही बेसिक डिक्शनरी API को लागू करने जा रहे हैं:
- get(): इनपुट कुंजी के साथ एलिमेंट प्राप्त करता है
- put(): की-वैल्यू पेयर को डिक्शनरी में रखता है
- hasKey(): जांचता है कि कुंजी डिक्शनरी में मौजूद है या नहीं
- delete(): दिए गए कुंजी को डिक्शनरी से हटाता है
- clear(): डिक्शनरी से सभी की-वैल्यू पेयर्स हटाता है
- keys(): सभी कुंजियों को एरे के रूप में लौटाता है
- values(): सभी मानों को एरे के रूप में लौटाता है