जावा संग्रह फ्रेमवर्क: Difference between revisions

From Vigyanwiki
No edit summary
Line 103: Line 103:


=== मानचित्र इंटरफेस ===
=== मानचित्र इंटरफेस ===
मानचित्र जावा में java.util.Map इंटरफ़ेस द्वारा परिभाषित किए गए हैं। मानचित्र साधारण आंकड़े संरचनाएं हैं जो एक आधारभूत को एक अंग से जोड़ती हैं। इससे मानचित्र बहुत नम्य हो जाता है। यदि आधारभूत अंग का हैश कोड है, तो मानचित्र अनिवार्य रूप से एक समूह है। यदि यह केवल एक बढ़ती हुई संख्या है, तो यह एक सूची बन जाती है। मानचित्रों java.util.HashMap, java.util.LinkedHashMap, और java.util.TreeMap द्वारा कार्यान्वित किए जाते हैं। हैशमैप [[हैश तालिका]] का उपयोग करता है। विभिन्न समूहों में अंगों को खोजने के लिए आधारभूत के हैश का उपयोग किया जाता है| LinkedHashMap अंगों के बीच एक [[दोगुनी लिंक्ड सूची]] बनाकर इसका विस्तार करता है, जिससे उन्हें उस क्रम में अभिगम करने की अनुमति देता है जिसमें उन्हें मानचित्र में डाला गया था। ट्रीमैप, हैशमैप और लिंक्ड हैश मैप के विपरीत, एक लाल-काले पेड़ का उपयोग करता है। आधारभूत का उपयोग पेड़ में नोड्स के मान के रूप में किया जाता है, और नोड्स मानचित्र में अंगोंको इंगित करते हैं।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/Map.html |title=Map (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
मानचित्र जावा में java.util.Map इंटरफ़ेस द्वारा परिभाषित किए गए हैं। मानचित्र साधारण आंकड़े संरचनाएं हैं जो एक आधारभूत को एक अंग से जोड़ती हैं। इससे मानचित्र बहुत नम्य हो जाता है। यदि आधारभूत अंग का हैश कोड है, तो मानचित्र अनिवार्य रूप से एक समूह है। यदि यह केवल एक बढ़ती हुई संख्या है, तो यह एक सूची बन जाती है। मानचित्रों java.util.HashMap, java.util.LinkedHashMap, और java.util.TreeMap द्वारा कार्यान्वित किए जाते हैं। हैशमैप [[हैश तालिका]] का उपयोग करता है। विभिन्न समूहों में अंगों को खोजने के लिए आधारभूत के हैश का उपयोग किया जाता है| LinkedHashMap अंगों के बीच एक [[दोगुनी लिंक्ड सूची]] बनाकर इसका विस्तार करता है, जिससे उन्हें उस क्रम में अभिगम करने की अनुमति देता है जिसमें उन्हें मानचित्र में डाला गया था। ट्रीमैप, हैशमैप और लिंक्ड हैश मैप के विपरीत, एक लाल-काले ट्री का उपयोग करता है। आधारभूत का उपयोग ट्री में बिंदु के मान के रूप में किया जाता है, और बिंदु मानचित्र में अंगों को संकेत करते हैं।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/Map.html |title=Map (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
Java.util.Map इंटरफ़ेस को इसके सबइंटरफ़ेस, java.util.SortedMap द्वारा विस्तारित किया गया है। यह इंटरफ़ेस एक मानचित्र को परिभाषित करता है जिसे प्रदान की गई कुंजियों द्वारा क्रमबद्ध किया जाता है। एक बार फिर, तुलना करने के लिए () विधि या सॉर्ट किए गए मानचित्र के निर्माता में प्रदान की गई विधि का उपयोग करके, कुंजी-तत्व जोड़े को कुंजियों द्वारा क्रमबद्ध किया जाता है। मानचित्र में पहली और अंतिम कुंजियों को कहा जा सकता है। इसके अतिरिक्त, सबमैप न्यूनतम और अधिकतम कुंजियों से बनाए जा सकते हैं। SortedMap java.util.TreeMap द्वारा कार्यान्वित किया जाता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html |title=SortedMap (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
Java.util.Map इंटरफ़ेस को इसके सबइंटरफ़ेस, java.util.SortedMap द्वारा विस्तारित किया गया है। यह इंटरफ़ेस एक मानचित्र को परिभाषित करता है जिसे प्रदान की गई कुंजियों द्वारा क्रमबद्ध किया जाता है। एक बार फिर, तुलना करने के लिए () विधि या सॉर्ट किए गए मानचित्र के निर्माता में प्रदान की गई विधि का उपयोग करके, कुंजी-तत्व जोड़े को कुंजियों द्वारा क्रमबद्ध किया जाता है। मानचित्र में पहली और अंतिम कुंजियों को कहा जा सकता है। इसके अतिरिक्त, सबमैप न्यूनतम और अधिकतम कुंजियों से बनाए जा सकते हैं। SortedMap java.util.TreeMap द्वारा कार्यान्वित किया जाता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/SortedMap.html |title=SortedMap (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
Java.util.NavigableMap इंटरफ़ेस Java.util.SortedMap को विभिन्न तरीकों से विस्तारित करता है। विधियों को बुलाया जा सकता है जो किसी भी दिशा में दी गई कुंजी के निकटतम कुंजी या मानचित्र प्रविष्टि को ढूंढते हैं। मानचित्र को उल्टा भी किया जा सकता है, और इससे उल्टे क्रम में एक पुनरावर्तक उत्पन्न किया जा सकता है। इसे java.util.TreeMap द्वारा कार्यान्वित किया गया है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/NavigableMap.html |title=NavigableMap (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
Java.util.NavigableMap इंटरफ़ेस Java.util.SortedMap को विभिन्न तरीकों से विस्तारित करता है। विधियों को बुलाया जा सकता है जो किसी भी दिशा में दी गई कुंजी के निकटतम कुंजी या मानचित्र प्रविष्टि को ढूंढते हैं। मानचित्र को उल्टा भी किया जा सकता है, और इससे उल्टे क्रम में एक पुनरावर्तक उत्पन्न किया जा सकता है। इसे java.util.TreeMap द्वारा कार्यान्वित किया गया है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/NavigableMap.html |title=NavigableMap (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>

Revision as of 18:29, 2 March 2023

java.util.Collection वर्ग और इंटरफ़ेस पदानुक्रम
जावा का java.util.Map वर्ग और इंटरफ़ेस पदानुक्रम

जावा संग्रह संरचना वर्गो और इंटरफ़ेस का एक समूह है जो सामान्यतः पुन: प्रयोज्य संग्रह निर्दिष्ट संरचनाओं को कार्यान्वित करता है।[1]

हालांकि इसे एक संरचना के रूप में जाना जाता है, यह एक लाइब्रेरी के रूप में काम करता है। संग्रह संरचना दोनों इंटरफेस प्रदान करता है जो विभिन्न संग्रहों और उन्हें लागू करने वाले वर्गो को कार्यान्वित करता है।

सरणियों से अंतर

संग्रह और सरणियाँ समान हैं कि वे दोनों वस्तुओं से सम्बन्ध रखती हैं और उन्हें एक समूह के रूप में व्यवस्थित किया जा सकता है। हालाँकि, सरणियों के विपरीत, संग्रह को स्थापित होने पर एक निश्चित क्षमता निर्दिष्ट करने की आवश्यकता नहीं होती है। वस्तुओं को जोड़े या हटाए जाने पर संग्रह स्वचालित रूप से परिमाण में बढ़ या घट सकते हैं। संग्रह में मूल आंकड़ों के प्रकार (प्राथमिक प्रकार) जैसे पूर्णांक, दीर्घ या युग्मित के सिद्धांत सम्मिलित नहीं हो सकते; इसके बजाय,उनके पास पूर्णांक, दीर्घ या युग्मित जैसे आवरण वर्ग हैं। [2]

विवरण

जावा प्लेटफॉर्म के पूर्व-JDK 1.2 संस्करणों मे संग्रह कार्यान्वयन में कुछ आंकड़े संरचना वर्ग सम्मिलित थे, लेकिन इसमें संग्रह संरचना सम्मिलित नहीं थी।[3] जावा वस्तुओं को समूहीकरण करने के लिए मानक क्रम सारणी, सदिश और द्रुतान्वेषण सारणी वर्गो के माध्यम से थी, जिसका विस्तार करना दुर्भाग्य से आसान नहीं था, और एक मानक सदस्य इंटरफ़ेस को कार्यान्वित नहीं करता ।[4] पुन: प्रयोज्य संग्रह आंकड़े संरचनाओं की आवश्यकता को पूरा करने के लिए, कई स्वतंत्र रूपरेखाएँ विकसित की गईं,[3]डौग ली के संग्रह संकुल में सबसे ज्यादा उपयोग किया जा रहा है,[5] और वस्तुस्थान व्यापक संग्रह लाइब्रेरी (JGL),[6] जिसका मूल उद्देश्य C++ मानक आदर्श लाइब्रेरी (STL) के साथ सामंजस्य करना था।[7] संग्रह की रूपरेखा मुख्य रूप से जोशुआ बलोच द्वारा परिकल्पित और विकसित किया गया था, और JDK 1.2 में प्रस्तावित किया गया था। इसने डौग ली के संग्रह संकुल से कई विचारों और वर्गो का पुन: उपयोग किया, जिसके परिणामस्वरूप इसे हटा दिया गया था।[5] सन माइक्रोसिस्टम्स ने JGLके विचारों का उपयोग नहीं करने का निर्णय किया, क्योंकि वे एक संक्षिप्त रूपरेखा चाहते थे, और C++ के साथ निरंतरता उनके उद्देश्यों में से एक नहीं थी।[8] डौग ली ने बाद में एक समरूपता संकुल विकसित किया, जिसमें संग्रह से संबंधित नए वर्ग सम्मिलित थे।[9] इन समवर्ती उपयोगिताओं का एक अद्यतन संस्करण JDK 5.0 में JSR 166 के रूप में सम्मिलित किया गया था।

स्थापत्य

जावा में लगभग सभी संग्रह java.util.Collection इंटरफ़ेस से प्राप्त होते हैं। एक संग्रह सभी संग्रहों के मूल भागों को परिभाषित करता है। इंटरफ़ेस संग्रह में जोड़ने और निकालने के लिए क्रमशः ऐड () और रिमूव () पद्धतियाें को बताता है। यह भी आवश्यक है toArray () पद्धति, जो संग्रह को संग्रह में सभी अंगों के एक साधारण सरणी में परिवर्तित करती है। अंत में, wasContent () पद्धति जाँचती है कि संग्रह में कोई विस्तृत अंग है या नहीं। संग्रह इंटरफ़ेस java.lang.Iterable का उप-इंटरफ़ेस है, इसलिए कोई भी संग्रह प्रत्येक कथन का लक्ष्य हो सकता है। (पुनरावर्तनीय इंटरफ़ेस प्रत्येक कथन के लिए उपयोग की जाने वाली पुनरावर्तक () पद्धति प्रदान करता है।) सभी संग्रहों में एक पुनरावर्तक होता है जो संग्रह के सभी अंगों के माध्यम से जाता है। इसके अतिरिक्त, संग्रह एक सामान्य है। किसी भी वर्ग को संचय करने के लिए कोई भी संग्रह लिखा जा सकता है। उदाहरण के लिए, संग्रह <शृंखला> शृंखला को नियन्त्रित कर सकती है, और संग्रह के अंगों को संचकन के बिना शृंखला के रूप में उपयोग किया जा सकता है।[10] ध्यान दें कि कोणीय कोष्ठकों < > में एक प्रकार की युक्ति हो सकती है जो निर्दिष्ट करती है कि संग्रह किस प्रकार का है।

संग्रह के तीन प्रकार

संग्रह सामान्य तीन प्रकार के हैं: आदिष्ट सूचियाँ, शब्दकोश/मानचित्र और समूह।

आदिष्ट सूचियाँ प्रोग्रामर को एक निश्चित क्रम में वस्तुओं सम्मिलित करने और उसी क्रम में उन वस्तुओं को पुनः प्राप्त करने की अनुमति देती हैं। एक उदाहरण प्रतीक्षा सूची है। आदिष्ट सूचियों के लिए आधार इंटरफेस को सूची और पंक्ति कहा जाता है।

शब्दकोश/मानचित्र वस्तु के मान तक पहुँचने के लिए एक लुकअप कुंजी के साथ वस्तुओं के निर्देशों को संग्रहीत करते हैं। कुंजी का एक उदाहरण एक पहचान पत्र है। शब्दकोशों/मानचित्र के लिए आधार इंटरफेस को मानचित्र कहा जाता है।

समूह अनियंत्रित संग्रह होते हैं जिन्हें पुनरावृत्त किया जा सकता है और प्रत्येक अंग को एक समय में सम्मिलित किया जा सकता है। सेट के लिए आधार इंटरफ़ेस को समूह कहा जाता है।[2]


सूची इंटरफ़ेस

सूचियाँ java.util.List इंटरफ़ेस के माध्यम से संग्रह संरचना में कार्यान्वित की जाती हैं। यह एक सूची को अनिवार्य रूप से एक सरणी के अधिक नम्य संस्करण के रूप में परिभाषित करता है। अंगों का एक विशिष्ट क्रम होता है, और प्रतिरूप अंगों की अनुमति होती है। अंगों को एक विशिष्ट स्थिति में रखा जा सकता है। उन्हें सूची के अंदर भी खोजा जा सकता है। सूची कार्यान्वित करने वाले ठोस वर्गों के दो उदाहरण हैं:

  • java.util.ArrayList, जो सूची को एक सरणी के रूप में कार्यान्वित करता है। जब भी किसी सूची के लिए विशिष्ट कार्यों की आवश्यकता होती है, तो वर्ग इसे प्रस्तुत करने के लिए अंगों को सरणी के अंदर ले जाता है।
  • java.util.LinkedList. यह वर्ग उन अंगों को बिंदु में संग्रहीत करता है जिनमें प्रत्येक के पास सूची में पिछले और अगले बिंदु के लिए एक सूचक होता है। संकेतकों का पालन करके सूची को पार किया जा सकता है, और अंगों के बिंदु को उसके उचित स्थान पर रखने के लिए केवल संकेतकों को बदलकर जोड़ा या हटाया जा सकता है।[11]


स्टैक वर्ग

Java.util.Stack का उपयोग करके स्टैक बनाए जाते हैं। स्टैक स्टैक पर एक नई वस्तु डालने की पद्धति प्रदान करता है (विधि पुश ()) और स्टैक से वस्तु को पुनः प्राप्त करने के लिए (पद्धति पॉप ())। स्टैक वस्तु को लास्ट-इन-फर्स्ट-आउट (LIFO) के अनुसार क्रम में वापस करता है, उदा. स्टैक पर नवीनतम रखी गई वस्तु पहले वापस आ जाती है। java.util.Stack जावा द्वारा प्रदान किए गए स्टैक का एक मानक कार्यान्वयन है। स्टैक वर्ग वस्तुओं के लास्ट-इन-फर्स्ट-आउट (LIFO) स्टैक का प्रतिनिधित्व करता है। यह वर्ग java.util.Vector को पांच संचालनों के साथ विस्तारित करता है जो एक सदिश को स्टैक के रूप में अभिक्रियित करने की अनुमति देता है। सामान्य पुश और पॉप प्रबंध प्रदान किए जाते हैं, साथ ही स्टैक पर शीर्ष वस्तु को देखने के लिए एक पद्धति ,स्टैक खाली है या नहीं, यह जांचने की एक पद्धति और एक वस्तु के लिए स्टैक खोजने और शीर्ष से कितनी दूर है यह पता लगाने की एक पद्धति। जब स्टैक पहली बार बनाया जाता है, तो इसमें कोई वस्तु नहीं होती है।

कतार इंटरफेस

Java.util.Queue इंटरफ़ेस कतार डेटा संरचना को परिभाषित करता है, जो अंगोंको उस क्रम में संग्रहीत करता है जिसमें वे डाले गए हैं। नए जोड़े लाइन के अंत में जाते हैं, और अंगोंको सामने से हटा दिया जाता है। यह फर्स्ट-इन फर्स्ट-आउट सिस्टम बनाता है। यह इंटरफ़ेस java.util.LinkedList, java.util.ArrayDeque, और java.util.PriorityQueue द्वारा कार्यान्वित किया गया है। लिंक्डलिस्ट, निश्चित रूप से, सूची इंटरफ़ेस को भी लागू करता है और इसे एक के रूप में भी इस्तेमाल किया जा सकता है। लेकिन इसमें कतार के तरीके भी हैं। ArrayDeque कतार को एक सरणी के रूप में लागू करता है। LinkedList और ArrayDeque दोनों ही java.util.Deque इंटरफ़ेस को लागू करते हैं, जिससे इसे और अधिक लचीलापन मिलता है।[12] java.util.Queue को इसके सबइंटरफेस, java.util.concurrent.BlockingQueue के साथ अधिक लचीले ढंग से उपयोग किया जा सकता है। BlockingQueue इंटरफ़ेस एक नियमित कतार की तरह काम करता है, लेकिन कतार में जोड़ने और हटाने से अवरुद्ध हो रहा है। यदि खाली क्यू पर रिमूव को कॉल किया जाता है, तो इसे कतार में किसी आइटम के प्रकट होने के लिए या तो निर्दिष्ट समय या अनिश्चित काल तक प्रतीक्षा करने के लिए सेट किया जा सकता है। इसी तरह, किसी आइटम को जोड़ना कतार पर एक वैकल्पिक क्षमता प्रतिबंध के अधीन है, और विधि लौटने से पहले कतार में स्थान उपलब्ध होने की प्रतीक्षा कर सकती है।[13] java.util.PriorityQueue java.util.Queue को लागू करता है, लेकिन इसे बदल भी देता है। अंगोंको उस क्रम में क्रमबद्ध करने के बजाय जिसमें वे डाले गए हैं, उन्हें प्राथमिकता के आधार पर क्रमबद्ध किया जाता है। प्राथमिकता निर्धारित करने के लिए उपयोग की जाने वाली विधि या तो अंगोंमें तुलना () विधि या कंस्ट्रक्टर में दी गई विधि है। वर्ग वस्तुओं को क्रमबद्ध रखने के लिए हीप का उपयोग करके इसे बनाता है।[14]


डबल-एंडेड कतार (डीक्यू) इंटरफेस

Java.util.Queue इंटरफ़ेस को java.util.Deque सबइंटरफ़ेस द्वारा विस्तारित किया गया है। Deque एक डबल-एंडेड कतार बनाता है। जबकि एक नियमित कतार केवल पीछे की ओर सम्मिलन और आगे की ओर हटाने की अनुमति देती है, डेक सम्मिलन या निष्कासन को आगे और पीछे दोनों जगह करने की अनुमति देता है। एक डेक एक कतार की तरह है जिसे आगे या पीछे, या दोनों एक साथ इस्तेमाल किया जा सकता है। इसके अतिरिक्त, आगे और पीछे दोनों इटरेटर उत्पन्न किए जा सकते हैं। डेक इंटरफ़ेस java.util.ArrayDeque और java.util.LinkedList द्वारा कार्यान्वित किया जाता है।[15] Java.util.concurrent.BlockingDeque इंटरफ़ेस java.util.concurrent.BlockingQueue के समान काम करता है। सम्मिलन और हटाने के लिए सम्मिलन की प्रतीक्षा करने या संभव होने के लिए हटाने के लिए समय सीमा के साथ हटाने के लिए समान तरीके प्रदान किए जाते हैं। हालाँकि, इंटरफ़ेस डेक का लचीलापन भी प्रदान करता है। सम्मिलन और निष्कासन दोनों सिरों पर हो सकता है। ब्लॉकिंग फ़ंक्शन को डेक फ़ंक्शन के साथ जोड़ा जाता है।[16]


इंटरफेस सेट करें

Java का java.util.Set इंटरफ़ेस सेट को परिभाषित करता है। एक सेट में कोई डुप्लिकेट तत्व नहीं हो सकते। इसके अतिरिक्त, सेट का कोई निर्धारित क्रम नहीं है। इसलिए, अंगोंको इंडेक्स द्वारा नहीं पाया जा सकता है। सेट java.util.HashSet, java.util.LinkedHashSet, और java.util.TreeSet द्वारा कार्यान्वित किया जाता है। हैशसेट हैश टेबल का उपयोग करता है। अधिक विशेष रूप से, यह हैश और अंगोंको स्टोर करने और डुप्लीकेट को रोकने के लिए java.util.HashMap का उपयोग करता है। java.util.LinkedHashSet एक दोगुनी लिंक्ड सूची बनाकर इसका विस्तार करता है जो सभी अंगोंको उनके सम्मिलन क्रम से जोड़ता है। यह सुनिश्चित करता है कि सेट पर पुनरावृत्ति क्रम अनुमानित है। java.util.TreeSet एक java.util.TreeMap द्वारा कार्यान्वित एक लाल-काले पेड़ का उपयोग करता है। लाल-काले पेड़ यह सुनिश्चित करते हैं कि कोई डुप्लिकेट न हो। इसके अतिरिक्त, यह ट्रीसेट को java.util.SortedSet को लागू करने की अनुमति देता है।[17] Java.util.Set इंटरफ़ेस को java.util.SortedSet इंटरफ़ेस द्वारा विस्तारित किया गया है। नियमित सेट के विपरीत, सॉर्ट किए गए सेट में अंगोंको सॉर्ट किया जाता है, या तो तत्व की तुलना करने के लिए () विधि, या सॉर्ट किए गए सेट के निर्माता को प्रदान की गई विधि। सॉर्ट किए गए सेट के पहले और अंतिम अंगोंको पुनर्प्राप्त किया जा सकता है, और सबसेट को न्यूनतम और अधिकतम मानों के माध्यम से बनाया जा सकता है, साथ ही साथ सॉर्ट किए गए सेट की शुरुआत या समाप्ति पर भी। SortedSet इंटरफ़ेस java.util.TreeSet द्वारा लागू किया गया है।[18] java.util.SortedSet को java.util.NavigableSet इंटरफ़ेस के माध्यम से आगे बढ़ाया गया है। यह सॉर्टेडसेट के समान है, लेकिन कुछ अतिरिक्त तरीके हैं। मंजिल (), छत (), निचला (), और उच्च () विधियाँ सेट में एक तत्व खोजती हैं जो पैरामीटर के करीब है। इसके अतिरिक्त, सेट में आइटम्स पर अवरोही पुनरावर्तक प्रदान किया जाता है। सॉर्टेडसेट के साथ, java.util.TreeSet नेविगेबलसेट को लागू करता है।[19]


मानचित्र इंटरफेस

मानचित्र जावा में java.util.Map इंटरफ़ेस द्वारा परिभाषित किए गए हैं। मानचित्र साधारण आंकड़े संरचनाएं हैं जो एक आधारभूत को एक अंग से जोड़ती हैं। इससे मानचित्र बहुत नम्य हो जाता है। यदि आधारभूत अंग का हैश कोड है, तो मानचित्र अनिवार्य रूप से एक समूह है। यदि यह केवल एक बढ़ती हुई संख्या है, तो यह एक सूची बन जाती है। मानचित्रों java.util.HashMap, java.util.LinkedHashMap, और java.util.TreeMap द्वारा कार्यान्वित किए जाते हैं। हैशमैप हैश तालिका का उपयोग करता है। विभिन्न समूहों में अंगों को खोजने के लिए आधारभूत के हैश का उपयोग किया जाता है| LinkedHashMap अंगों के बीच एक दोगुनी लिंक्ड सूची बनाकर इसका विस्तार करता है, जिससे उन्हें उस क्रम में अभिगम करने की अनुमति देता है जिसमें उन्हें मानचित्र में डाला गया था। ट्रीमैप, हैशमैप और लिंक्ड हैश मैप के विपरीत, एक लाल-काले ट्री का उपयोग करता है। आधारभूत का उपयोग ट्री में बिंदु के मान के रूप में किया जाता है, और बिंदु मानचित्र में अंगों को संकेत करते हैं।[20] Java.util.Map इंटरफ़ेस को इसके सबइंटरफ़ेस, java.util.SortedMap द्वारा विस्तारित किया गया है। यह इंटरफ़ेस एक मानचित्र को परिभाषित करता है जिसे प्रदान की गई कुंजियों द्वारा क्रमबद्ध किया जाता है। एक बार फिर, तुलना करने के लिए () विधि या सॉर्ट किए गए मानचित्र के निर्माता में प्रदान की गई विधि का उपयोग करके, कुंजी-तत्व जोड़े को कुंजियों द्वारा क्रमबद्ध किया जाता है। मानचित्र में पहली और अंतिम कुंजियों को कहा जा सकता है। इसके अतिरिक्त, सबमैप न्यूनतम और अधिकतम कुंजियों से बनाए जा सकते हैं। SortedMap java.util.TreeMap द्वारा कार्यान्वित किया जाता है।[21] Java.util.NavigableMap इंटरफ़ेस Java.util.SortedMap को विभिन्न तरीकों से विस्तारित करता है। विधियों को बुलाया जा सकता है जो किसी भी दिशा में दी गई कुंजी के निकटतम कुंजी या मानचित्र प्रविष्टि को ढूंढते हैं। मानचित्र को उल्टा भी किया जा सकता है, और इससे उल्टे क्रम में एक पुनरावर्तक उत्पन्न किया जा सकता है। इसे java.util.TreeMap द्वारा कार्यान्वित किया गया है।[22]


जावा संग्रह संरचना के लिए विस्तारण

जावा संग्रह संरचना को अपाचे कॉमन्स संग्रह लाइब्रेरी द्वारा विस्तारित किया गया है, जो संग्रह प्रकार जैसे बैग और द्विदिश मानचित्रों के साथ- साथ यूनियनों और प्रतिच्छेदन को बनाने के लिए उपयोगिताओं को जोड़ता है।[23] गूगल ने गोवा के हिस्से के रूप में अपनी संग्रह लाइब्रेरी जारी की है।

यह भी देखें

संदर्भ

  1. "Lesson: Introduction to Collections". Oracle Corporation. Retrieved 2010-12-22.
  2. 2.0 2.1 Horstmann, Cay (2014). बिग जावा अर्ली ऑब्जेक्ट्स.
  3. 3.0 3.1 "Java Collections Framework" (PDF). IBM. Archived from the original (PDF) on 2011-08-07.
  4. Becker, Dan (November 1, 1998). "Get started with the Java Collections Framework". JavaWorld. Retrieved 2020-07-13. Before Collections made its most welcome debut, the standard methods for grouping Java objects were via the array, the Vector, and the Hashtable. All three of these collections have different methods and syntax for accessing members: arrays use the square bracket ([]) symbols, Vector uses the elementAt method, and Hashtable uses get and put methods.
  5. 5.0 5.1 Lea, Doug. "Overview of the collections Package". Retrieved 2011-01-01. The Sun Java Development Kit JDK1.2 finally includes a standard set of collection classes. While there are some design and implementation differences, the JDK1.2 package contains most of the same basic abstractions, structure, and functionality as this package. For this reason, this collections package will NOT be further updated
  6. "Generic Collection Library for Java™". Retrieved 2011-01-01.
  7. Vanhelsuwé, Laurence (June 1, 1997). "Need a good set of abstract data structures? ObjectSpace's JGL packs a punch!". JavaWorld. Retrieved 2020-07-13. As with Java itself, the Java Generic Library borrows heavily from the C++ camp: It takes the best from C++'s STL, while leaving the C++ warts behind. Most C++ programmers today will know of their STL, but few are managing to exploit its potential.
  8. Vanhelsuwé, Laurence (January 1, 1999). "The battle of the container frameworks: which should you use?". JavaWorld. Retrieved 2020-07-13. Comparing ObjectSpace Inc.'s JGL and Sun's Collections Framework turns out to be like comparing apples and kiwi fruits. At first sight, the two frameworks seem to be competing for the same developers, but after a closer inspection it is clear that the two cannot be compared fairly without acknowledging first that the two frameworks have different goals. If, like Sun's documentation states, Collections is going to homogenize Sun's own APIs (core API, extensions, etc.), then clearly Collections has to be great news, and a good thing, even to the most fanatic JGL addict. Provided Sun doesn't break its promise in this area, I'll be happy to invest my resources in adopting Collections in earnest.
  9. Lea, Doug. "Overview of package util.concurrent Release 1.3.4". Retrieved 2011-01-01. Note: Upon release of J2SE 5.0, this package enters maintenance mode: Only essential corrections will be released. J2SE5 package java.util.concurrent includes improved, more efficient, standardized versions of the main components in this package.
  10. "Iterable (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  11. "List (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  12. "Queue (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  13. "BlockingQueue (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  14. "PriorityQueue (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  15. "Deque (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  16. "BlockingDeque (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  17. "Set (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  18. "SortedSet (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  19. "NavigableSet (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06.
  20. "Map (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  21. "SortedMap (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  22. "NavigableMap (Java Platform SE 7 )". Docs.oracle.com. 2013-06-06. Retrieved 2013-08-16.
  23. "संग्रह - होम". Commons.apache.org. 2013-07-04. Retrieved 2013-08-16.