मल्टीमैप

कंप्यूटर विज्ञान में, एक मल्टीमैप (कभी-कभी मल्टीहैश, मल्टीडिक्ट या मल्टीडिक्शनरी भी) एक सहयोगी सरणी अमूर्त डेटा प्रकार का एक सामान्यीकरण है जिसमें एक से अधिक मान किसी दिए गए कुंजी के साथ जुड़े और लौटाए जा सकते हैं। मानचित्र और मल्टीमैप दोनों कंटेनर (डेटा संरचना) के विशेष मामले हैं (उदाहरण के लिए, C++ मानक टेम्पलेट लाइब्रेरी मानक टेम्पलेट लाइब्रेरी#कंटेनर देखें)। अक्सर मल्टीमैप को मानचित्र मानों के रूप में सूची (कंप्यूटिंग) या सेट (कंप्यूटर विज्ञान) के साथ मानचित्र के रूप में कार्यान्वित किया जाता है।

उदाहरण

 * एक छात्र नामांकन प्रणाली में, जहां छात्रों को एक साथ कई कक्षाओं में नामांकित किया जा सकता है, एक पाठ्यक्रम में प्रत्येक छात्र के नामांकन के लिए एक एसोसिएशन हो सकती है, जहां कुंजी छात्र आईडी है और मूल्य पाठ्यक्रम आईडी है। यदि एक छात्र तीन पाठ्यक्रमों में नामांकित है, तो एक ही कुंजी वाली तीन एसोसिएशन होंगी।
 * किसी पुस्तक का सूचकांक किसी दिए गए सूचकांक शब्द के लिए किसी भी संख्या में संदर्भों की रिपोर्ट कर सकता है, और इस प्रकार सूचकांक शब्दों से किसी भी संख्या में संदर्भ स्थानों या पृष्ठों के लिए मल्टीमैप के रूप में कोडित किया जा सकता है।
 * क्वेरी स्ट्रिंग में एक ही फ़ील्ड से जुड़े कई मान हो सकते हैं। यह आमतौर पर तब उत्पन्न होता है जब एक  वेब फार्म  एक ही फॉर्म तत्व के जवाब में एकाधिक चेक बॉक्स या चयन चुनने की अनुमति देता है।

सी++
C++ की मानक टेम्पलेट लाइब्रेरी प्रदान करती है  स्व-संतुलन द्विआधारी खोज वृक्ष का उपयोग करके क्रमबद्ध मल्टीमैप के लिए मानक टेम्पलेट लाइब्रेरी#कंटेनर, और सिलिकॉन ग्राफिक्स इंटरनेशनल का एसटीएल एक्सटेंशन प्रदान करता है   कंटेनर, जो हैश तालिका का उपयोग करके मल्टीमैप लागू करता है। C++11 के अनुसार, मानक टेम्पलेट लाइब्रेरी प्रदान करता है  अव्यवस्थित मल्टीमैप के लिए।

डार्ट
क्विवर डार्ट (प्रोग्रामिंग भाषा) के लिए एक मल्टीमैप प्रदान करता है।

जावा
अपाचे कॉमन्स कलेक्शंस जावा (प्रोग्रामिंग भाषा) के लिए एक मल्टीमैप इंटरफ़ेस प्रदान करता है। यह एक मल्टीवैल्यूमैप कार्यान्वयन वर्ग भी प्रदान करता है जो मैप ऑब्जेक्ट और एक प्रकार के संग्रह से मल्टीमैप बनाता है। Google Guava एक मल्टीमैप इंटरफ़ेस और उसका कार्यान्वयन प्रदान करता है।

पायथन
पायथन एक प्रदान करता है  क्लास जिसका उपयोग मल्टीमैप बनाने के लिए किया जा सकता है। उपयोगकर्ता कक्षा को इस प्रकार त्वरित कर सकता है.

OCaml
OCaml का मानक पुस्तकालय मॉड्यूल  एक हैश तालिका लागू करता है जहां एक कुंजी के लिए एकाधिक मान संग्रहीत करना संभव है।

स्कैला
स्काला (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा का एपीआई मल्टीमैप और कार्यान्वयन भी प्रदान करता है।

यह भी देखें

 * सामान्य रूप से प्रकार की अवधारणा के लिए सार डेटा प्रकार
 * अधिक मौलिक अमूर्त डेटा प्रकार के लिए सहयोगी सरणी
 * ऐसे मामले के लिए मल्टीसेट जहां एक ही आइटम कई बार दिखाई दे सकता है