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

From Vigyanwiki
No edit summary
 
(42 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[File:Java.util.Collection hierarchy.svg|thumb|java.util.Collection वर्ग और इंटरफ़ेस पदानुक्रम]]
[[File:Java.util.Collection hierarchy.svg|thumb|java.util.Collection वर्ग और इंटरफ़ेस अनुक्रम]]
[[File:Java.util.Map hierarchy.svg|thumb|जावा का java.util.Map वर्ग और इंटरफ़ेस पदानुक्रम]][[ जावा (प्रोग्रामिंग भाषा) |जावा]] '''संग्रह संरचना''' कक्षाओं [[ इंटरफ़ेस (जावा) |इंटरफ़ेस]] का एक समूह है जो सामान्यतः पुन: प्रयोज्य संग्रह [[डेटा संरचना|निर्दिष्ट संरचनाओं]] को लागू करता है।<ref>{{cite web
[[File:Java.util.Map hierarchy.svg|thumb|जावा का java.util.Map वर्ग और इंटरफ़ेस अनुक्रम]][[जावा (प्रोग्रामिंग भाषा)|जावा]] संग्रह फ्रेमवर्क वर्गो और [[ इंटरफ़ेस (जावा) |इंटरफ़ेस]] का एक समूह है जो सामान्यतः पुन: प्रयोज्य संग्रह [[डेटा संरचना|निर्दिष्ट फ्रेमवर्कओं]] को कार्यान्वित करता है।<ref>{{cite web
| url=http://download.oracle.com/javase/tutorial/collections/intro/index.html
| url=http://download.oracle.com/javase/tutorial/collections/intro/index.html
| title=Lesson: Introduction to Collections
| title=Lesson: Introduction to Collections
| publisher=[[Oracle Corporation]]
| publisher=[[Oracle Corporation]]
| access-date=2010-12-22}}</ref>
| access-date=2010-12-22}}</ref>
हालांकि इसे एक संरचनाके रूप में जाना जाता है, यह एक[[ पुस्तकालय (कम्प्यूटिंग) | पुस्तकालय]] के रूप में काम करता है। संग्रह संरचना दोनों इंटरफेस प्रदान करता है जो विभिन्न संग्रहों और उन्हें लागू करने वाली कक्षाओं को परिभाषित करता है।
हालांकि इसे एक फ्रेमवर्क के रूप में जाना जाता है, यह एक[[ पुस्तकालय (कम्प्यूटिंग) | लाइब्रेरी]] के रूप में काम करता है। संग्रह फ्रेमवर्क दोनों इंटरफेस प्रदान करता है जो विभिन्न संग्रहों और उन्हें लागू करने वाले वर्गो को कार्यान्वित करता है।


== सरणियों से अंतर ==
== सरणियों से अंतर ==
संग्रह और सरणियाँ समान हैं कि वे दोनों वस्तुओं के संदर्भ रखते हैं और उन्हें एक समूह के रूप में प्रबंधित किया जा सकता है। हालाँकि, सरणियों के विपरीत, संग्रह को तत्काल होने पर एक निश्चित क्षमता निर्दिष्ट करने की आवश्यकता नहीं होती है। ऑब्जेक्ट जोड़े या हटाए जाने पर संग्रह स्वचालित रूप से आकार में बढ़ या घट सकते हैं। संग्रह में बुनियादी डेटा प्रकार के तत्व (आदिम प्रकार) जैसे int, long, या double नहीं हो सकते; इसके बजाय, वे रैपर क्लासेस जैसे इंटीजर, लॉन्ग या डबल रखते हैं।<ref name=":0">{{Cite book|title=बिग जावा अर्ली ऑब्जेक्ट्स|last=Horstmann|first=Cay|year=2014}}</ref>
संग्रह और सरणियाँ समान हैं कि वे दोनों वस्तुओं से  सम्बन्ध रखती हैं और उन्हें एक समूह के रूप में व्यवस्थित किया जा सकता है। हालाँकि, सरणियों के विपरीत, संग्रह को स्थापित होने पर एक निश्चित क्षमता निर्दिष्ट करने की आवश्यकता नहीं होती है। वस्तुओं को जोड़े या हटाए जाने पर संग्रह स्वचालित रूप से परिमाण में बढ़ या घट सकते हैं। संग्रह में मूल आंकड़ों के प्रकार (प्राथमिक प्रकार) जैसे पूर्णांक, दीर्घ या युग्मित के सिद्धांत सम्मिलित नहीं हो सकते; इसके बजाय,उनके पास  पूर्णांक, दीर्घ या युग्मित जैसे आवरण वर्ग हैं। <ref name=":0">{{Cite book|title=बिग जावा अर्ली ऑब्जेक्ट्स|last=Horstmann|first=Cay|year=2014}}</ref>
== विवरण ==
== विवरण ==
जावा प्लेटफॉर्म के पूर्व-JDK 1.2 संस्करणों मे संग्रह कार्यान्वयन में कुछ आंकड़े संरचना वर्ग सम्मिलित थे, लेकिन इसमें संग्रह संरचना सम्मिलित नहीं थी।<ref name="ibm">{{cite web
जावा प्लेटफॉर्म के पूर्व जेडीके 1.2 संस्करणों मे संग्रह कार्यान्वयन में कुछ आंकड़े फ्रेमवर्क वर्ग सम्मिलित थे, लेकिन इसमें संग्रह फ्रेमवर्क सम्मिलित नहीं थी।<ref name="ibm">{{cite web
  |url=http://www.digilife.be/quickreferences/PT/Java%20Collections%20Framework.pdf
  |url=http://www.digilife.be/quickreferences/PT/Java%20Collections%20Framework.pdf
  |title=Java Collections Framework
  |title=Java Collections Framework
Line 17: Line 17:
  |archive-url=https://web.archive.org/web/20110807042032/http://www.digilife.be/quickreferences/PT/Java%20Collections%20Framework.pdf
  |archive-url=https://web.archive.org/web/20110807042032/http://www.digilife.be/quickreferences/PT/Java%20Collections%20Framework.pdf
  |archive-date=2011-08-07
  |archive-date=2011-08-07
}}</ref> जावा वस्तुओं को समूहीकरण करने के लिए मानक क्रम सारणी, सदिश और द्रुतान्वेषण सारणी वर्गो के माध्यम से थी, जिसका विस्तार करना दुर्भाग्य से आसान नहीं था, और एक मानक सदस्य इंटरफ़ेस को कार्यान्वित नहीं करता ।<ref>{{cite web
}}</ref> जावा वस्तुओं क़ा समूहीकरण करने के लिए मानक क्रम सारणी, सदिश और द्रुतान्वेषण सारणी वर्गो के माध्यम से थी, जिसका विस्तार करना दुर्भाग्य से आसान नहीं था, और एक मानक सदस्य इंटरफ़ेस को कार्यान्वित नहीं करता ।<ref>{{cite web
  |last1=Becker |first1=Dan
  |last1=Becker |first1=Dan
  |date=1998-11-01 |df=mdy
  |date=1998-11-01 |df=mdy
Line 26: Line 26:
  |quote=''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 <code>get</code> and <code>put</code> methods.''
  |quote=''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 <code>get</code> and <code>put</code> methods.''
}}</ref>
}}</ref>
पुन: प्रयोज्य संग्रह डेटा संरचनाओं की आवश्यकता को पूरा करने के लिए, कई स्वतंत्र रूपरेखाएँ विकसित की गईं,<ref name="ibm"/>[[डौग ली]] के कलेक्शंस पैकेज में सबसे ज्यादा इस्तेमाल किया जा रहा है,<ref name="douglea">{{cite web
पुन: प्रयोज्य संग्रह [[आंकड़े संरचनाओं|आंकड़े फ्रेमवर्कओं]] की आवश्यकता को पूरा करने के लिए, कई स्वतंत्र रूपरेखाएँ विकसित की गईं,<ref name="ibm"/> [[डौग ली]] के संग्रह संकुल में सबसे ज्यादा उपयोग किया जा रहा है,<ref name="douglea">{{cite web
  |author-link1=Doug Lea |last1=Lea |first1=Doug
  |author-link1=Doug Lea |last1=Lea |first1=Doug
  |url=http://gee.cs.oswego.edu/dl/classes/collections/index.html
  |url=http://gee.cs.oswego.edu/dl/classes/collections/index.html
Line 32: Line 32:
  |access-date=2011-01-01
  |access-date=2011-01-01
  |quote=''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''
  |quote=''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''
}}</ref> और [[रिकर्सन सॉफ्टवेयर]] जेनेरिक कलेक्शन लाइब्रेरी (जेजीएल),<ref>{{cite web
}}</ref> और वस्तुस्थान व्यापक संग्रह लाइब्रेरी (जेजीएल),<ref>{{cite web
  |url=http://www.stanford.edu/group/coursework/docsTech/jgl/
  |url=http://www.stanford.edu/group/coursework/docsTech/jgl/
  |title=Generic Collection Library for Java™
  |title=Generic Collection Library for Java™
  |access-date=2011-01-01
  |access-date=2011-01-01
}}</ref> जिसका मुख्य लक्ष्य [[C++]] [[मानक टेम्पलेट लाइब्रेरी]] (STL) के साथ संगति करना था।<ref>{{cite web
}}</ref> जिसका मूल उद्देश्य सी++ [[मानक टेम्पलेट लाइब्रेरी|मानक आदर्श लाइब्रेरी]] (एसटीएल) के साथ सामंजस्य करना था।<ref>{{cite web
  |last1=Vanhelsuwé |first1=Laurence
  |last1=Vanhelsuwé |first1=Laurence
  |date=1997-06-01 |df=mdy
  |date=1997-06-01 |df=mdy
Line 45: Line 45:
  |quote=''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.''
  |quote=''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.''
}}</ref>
}}</ref>
संग्रह ढांचे को मुख्य रूप से [[जोशुआ बलोच]] द्वारा डिजाइन और विकसित किया गया था, और इसे J2SE 1.2|JDK 1.2 में पेश किया गया था। इसने डौग ली के कलेक्शंस पैकेज से कई विचारों और कक्षाओं का पुन: उपयोग किया, जिसके परिणामस्वरूप इसे हटा दिया गया था।<ref name="douglea" />[[सन माइक्रोसिस्टम्स]] ने जेजीएल के विचारों का उपयोग नहीं करने का फैसला किया, क्योंकि वे एक कॉम्पैक्ट संरचनाचाहते थे, और सी ++ के साथ स्थिरता उनके लक्ष्यों में से एक नहीं थी।<ref>{{cite web
संग्रह की रूपरेखा मुख्य रूप से [[जोशुआ बलोच]] द्वारा परिकल्पित और विकसित किया गया था, और [[JDK 1.2|जेडीके 1.2]] में प्रस्तावित किया गया था। इसने डौग ली के संग्रह संकुल से कई विचारों और वर्गो का पुन: उपयोग किया, जिसके परिणामस्वरूप इसे हटा दिया गया था।<ref name="douglea" /> [[सन माइक्रोसिस्टम्स]] ने जेजीएल के विचारों का उपयोग नहीं करने का निर्णय किया, क्योंकि वे एक संक्षिप्त रूपरेखा चाहते थे, और सी++ के साथ निरंतरता उनके उद्देश्यों में से एक नहीं थी।<ref>{{cite web
  |last1=Vanhelsuwé |first1=Laurence
  |last1=Vanhelsuwé |first1=Laurence
  |date=1999-01-01 |df=mdy
  |date=1999-01-01 |df=mdy
Line 54: Line 54:
  |quote=''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. ''
  |quote=''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. ''
}}</ref>
}}</ref>
डौग ली ने बाद में एक संगामिति (कंप्यूटर विज्ञान) [[जावा पैकेज]] विकसित किया, जिसमें संग्रह से संबंधित नए वर्ग सम्मिलितथे।<ref name="douglea2">{{cite web
डौग ली ने बाद में एक समरूपता संकुल विकसित किया, जिसमें संग्रह से संबंधित नए वर्ग सम्मिलित थे।<ref name="douglea2">{{cite web
  |author-link1=Doug Lea |last1=Lea |first1=Doug
  |author-link1=Doug Lea |last1=Lea |first1=Doug
  |url=http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
  |url=http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
Line 60: Line 60:
  |access-date=2011-01-01
  |access-date=2011-01-01
  |quote=''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.''
  |quote=''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.''
}}</ref> J2SE 5.0 | JDK 5.0 में Java Concurrency के रूप में इन समवर्ती उपयोगिताओं का एक अद्यतन संस्करण सम्मिलितकिया गया था।
}}</ref> इन समवर्ती उपयोगिताओं का एक अद्यतन संस्करण जेडीके 5.0 में जेएसआर 166 के रूप में सम्मिलित किया गया था।


== आर्किटेक्चर ==
== स्थापत्य ==
जावा में लगभग सभी संग्रह java.util.Collection इंटरफ़ेस से प्राप्त किए गए हैं। संग्रह सभी संग्रहों के मूल भागों को परिभाषित करता है। इंटरफ़ेस क्रमशः एक संग्रह से जोड़ने और निकालने के लिए ऐड () और हटाने () विधियों को बताता है। यह भी आवश्यक है toArray () विधि, जो संग्रह को संग्रह में सभी तत्वों के एक सरल सरणी में परिवर्तित करती है। अंत में, सम्‍मिलित () विधि जाँचती है कि संग्रह में कोई निर्दिष्ट तत्व है या नहीं। संग्रह इंटरफ़ेस java.lang.Iterable का उप-इंटरफ़ेस है, इसलिए कोई भी संग्रह प्रत्येक कथन का लक्ष्य हो सकता है। (Iterable इंटरफ़ेस प्रत्येक कथन के लिए उपयोग की जाने वाली iterator() विधि प्रदान करता है।) सभी संग्रहों में एक पुनरावर्तक होता है जो संग्रह के सभी तत्वों से होकर जाता है। इसके अतिरिक्त, संग्रह एक सामान्य है। किसी भी वर्ग को स्टोर करने के लिए कोई भी संग्रह लिखा जा सकता है। उदाहरण के लिए, {{code|Collection<String>}} स्ट्रिंग्स को होल्ड कर सकता है, और संग्रह के तत्वों को बिना किसी कास्टिंग के स्ट्रिंग्स के रूप में उपयोग किया जा सकता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html |title=Iterable (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref> ध्यान दें कि कोणीय कोष्ठक {{code|< >}} एक प्रकार का तर्क रख सकता है जो निर्दिष्ट करता है कि संग्रह किस प्रकार का है।
जावा में लगभग सभी संग्रह java.util.Collection इंटरफ़ेस से प्राप्त होते हैं। एक संग्रह सभी संग्रहों के मूल भागों को परिभाषित करता है। इंटरफ़ेस संग्रह में जोड़ने और निकालने के लिए क्रमशः ऐड () और रिमूव () पद्धतियाें को बताता है। यह भी आवश्यक है toArray () पद्धति, जो संग्रह को संग्रह में सभी अंगों को एक साधारण सरणी में परिवर्तित करती है। अंत में, wasContent () पद्धति जाँचती है कि संग्रह में कोई विस्तृत अंग है या नहीं। संग्रह इंटरफ़ेस java.lang.Iterable का उप-इंटरफ़ेस है, इसलिए कोई भी संग्रह प्रत्येक कथन का लक्ष्य हो सकता है। (पुनरावर्तनीय इंटरफ़ेस प्रत्येक कथन के लिए उपयोग की जाने वाली पुनरावर्तक () पद्धति प्रदान करता है।) सभी संग्रहों में एक पुनरावर्तक होता है जो संग्रह के सभी अंगों के माध्यम से जाता है। इसके अतिरिक्त, संग्रह एक सामान्य है। किसी भी वर्ग को संचय करने के लिए कोई भी संग्रह लिखा जा सकता है। उदाहरण के लिए, {{code|संग्रह <शृंखला>}} शृंखला को नियन्त्रित कर सकती है, और संग्रह के अंगों को संचकन के बिना शृंखला के रूप में उपयोग किया जा सकता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html |title=Iterable (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref> ध्यान दें कि कोणीय कोष्ठकों {{code|< >}} में एक प्रकार की युक्ति हो सकती है जो निर्दिष्ट करती है कि संग्रह किस प्रकार का है।


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


आदेशित सूचियाँ प्रोग्रामर को एक निश्चित क्रम में आइटम सम्मिलित करने और उसी क्रम में उन वस्तुओं को पुनः प्राप्त करने की अनुमति देती हैं। एक उदाहरण प्रतीक्षा सूची है। आदेशित सूचियों के लिए आधार इंटरफेस को सूची और कतार कहा जाता है।
आदिष्ट सूचियाँ प्रोग्रामर को एक निश्चित क्रम में वस्तुओं को सम्मिलित करने और उसी क्रम में उन वस्तुओं को पुनः प्राप्त करने की अनुमति देती हैं। एक उदाहरण प्रतीक्षा सूची है। आदिष्ट सूचियों के लिए आधार इंटरफेस को सूची और पंक्ति कहा जाता है।
 
शब्दकोश/मानचित्र वस्तु के मूल्यों तक पहुँचने के लिए एक लुकअप कुंजी के साथ वस्तुओं के संदर्भों को संग्रहीत करते हैं। कुंजी का एक उदाहरण एक पहचान पत्र है। शब्दकोशों/नक्शों के लिए आधार इंटरफेस को मानचित्र कहा जाता है।
 
सेट अनियंत्रित संग्रह होते हैं जिन्हें पुनरावृत्त किया जा सकता है और प्रत्येक तत्व को एक बार में सम्मिलितकिया जा सकता है। सेट के लिए बेस इंटरफ़ेस को सेट कहा जाता है।<ref name=":0" />


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


समूह अनियंत्रित संग्रह होते हैं जिन्हें पुनरावृत्त किया जा सकता है और प्रत्येक अंग को एक समय में सम्मिलित किया जा सकता है। सेट के लिए आधार इंटरफ़ेस को समूह कहा जाता है।<ref name=":0" />
=== सूची इंटरफ़ेस ===
=== सूची इंटरफ़ेस ===
सूचियाँ java.util.List इंटरफ़ेस के माध्यम से संग्रह ढांचे में कार्यान्वित की जाती हैं। यह एक सूची को अनिवार्य रूप से एक सरणी के अधिक लचीले संस्करण के रूप में परिभाषित करता है। तत्वों का एक विशिष्ट क्रम होता है, और डुप्लिकेट तत्वों की अनुमति होती है। तत्वों को एक विशिष्ट स्थिति में रखा जा सकता है। उन्हें सूची के भीतर भी खोजा जा सकता है। सूची लागू करने वाले ठोस वर्गों के दो उदाहरण हैं:
सूचियाँ java.util.List इंटरफ़ेस के माध्यम से संग्रह फ्रेमवर्क में कार्यान्वित की जाती हैं। यह एक सूची को अनिवार्य रूप से एक सरणी के अधिक नम्य संस्करण के रूप में परिभाषित करता है। अंगों का एक विशिष्ट क्रम होता है, और प्रतिरूप अंगों की अनुमति होती है। अंगों को एक विशिष्ट स्थिति में रखा जा सकता है। उन्हें सूची के अंदर भी खोजा जा सकता है। सूची कार्यान्वित करने वाले ठोस वर्गों के दो उदाहरण हैं:
 
*java.util.ArrayList, जो सूची को एक सरणी के रूप में लागू करता है। जब भी किसी सूची के लिए विशिष्ट कार्यों की आवश्यकता होती है, तो वर्ग इसे करने के लिए तत्वों को सरणी के भीतर ले जाता है।
*java.util.LinkedList. यह वर्ग उन तत्वों को नोड्स में संग्रहीत करता है जिनमें प्रत्येक के पास सूची में पिछले और अगले नोड्स के लिए एक सूचक होता है। पॉइंटर्स का पालन करके सूची को पार किया जा सकता है, और नोड को उसके उचित स्थान पर रखने के लिए केवल पॉइंटर्स को बदलकर तत्वों को जोड़ा या हटाया जा सकता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/List.html |title=List (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
 
 
=== ढेर वर्ग ===
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 इंटरफ़ेस को लागू करते हैं, जिससे इसे और अधिक लचीलापन मिलता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/Queue.html |title=Queue (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
java.util.Queue को इसके सबइंटरफेस, java.util.concurrent.BlockingQueue के साथ अधिक लचीले ढंग से उपयोग किया जा सकता है। BlockingQueue इंटरफ़ेस एक नियमित कतार की तरह काम करता है, लेकिन कतार में जोड़ने और हटाने से अवरुद्ध हो रहा है। यदि खाली क्यू पर रिमूव को कॉल किया जाता है, तो इसे कतार में किसी आइटम के प्रकट होने के लिए या तो निर्दिष्ट समय या अनिश्चित काल तक प्रतीक्षा करने के लिए सेट किया जा सकता है। इसी तरह, किसी आइटम को जोड़ना कतार पर एक वैकल्पिक क्षमता प्रतिबंध के अधीन है, और विधि लौटने से पहले कतार में स्थान उपलब्ध होने की प्रतीक्षा कर सकती है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html |title=BlockingQueue (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
java.util.PriorityQueue java.util.Queue को लागू करता है, लेकिन इसे बदल भी देता है। तत्वों को उस क्रम में क्रमबद्ध करने के बजाय जिसमें वे डाले गए हैं, उन्हें प्राथमिकता के आधार पर क्रमबद्ध किया जाता है। प्राथमिकता निर्धारित करने के लिए उपयोग की जाने वाली विधि या तो तत्वों में तुलना () विधि या कंस्ट्रक्टर में दी गई विधि है। वर्ग वस्तुओं को क्रमबद्ध रखने के लिए हीप का उपयोग करके इसे बनाता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html |title=PriorityQueue (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>


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


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




=== इंटरफेस सेट करें ===
=== इंटरफेस समूह ===
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 को लागू करने की अनुमति देता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/Set.html |title=Set (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
जावा का 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 को लागू करने की अनुमति देता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/Set.html |title=Set (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
Java.util.Set इंटरफ़ेस को java.util.SortedSet इंटरफ़ेस द्वारा विस्तारित किया गया है। नियमित सेट के विपरीत, सॉर्ट किए गए सेट में तत्वों को सॉर्ट किया जाता है, या तो तत्व की तुलना करने के लिए () विधि, या सॉर्ट किए गए सेट के निर्माता को प्रदान की गई विधि। सॉर्ट किए गए सेट के पहले और अंतिम तत्वों को पुनर्प्राप्त किया जा सकता है, और सबसेट को न्यूनतम और अधिकतम मानों के माध्यम से बनाया जा सकता है, साथ ही साथ सॉर्ट किए गए सेट की शुरुआत या समाप्ति पर भी। SortedSet इंटरफ़ेस java.util.TreeSet द्वारा लागू किया गया है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/SortedSet.html |title=SortedSet (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
Java.util.Set इंटरफ़ेस को java.util.SortedSet इंटरफ़ेस द्वारा विस्तारित किया गया है। नियमित समूह के विपरीत, वर्गीकृत किए गए समूह में अंगों को क्रमबद्ध किया जाता है, या तो अंग की तुलना करने के लिए () पद्धति , या क्रमबद्ध किए गए समूह के निर्माता को प्रदान की गई पद्धति । क्रमबद्ध किए गए समूह के पहले और अंतिम अंगों को पुनः प्राप्त किया जा सकता है, और सबसेट को न्यूनतम और अधिकतम मानों के साथ-साथ आदेशित समूह के शुरुआत या अंत में बनाया जा सकता है। SortedSet इंटरफ़ेस java.util.TreeSet द्वारा लागू किया गया है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/SortedSet.html |title=SortedSet (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06 |access-date=2013-08-16}}</ref>
java.util.SortedSet को java.util.NavigableSet इंटरफ़ेस के माध्यम से आगे बढ़ाया गया है। यह सॉर्टेडसेट के समान है, लेकिन कुछ अतिरिक्त तरीके हैं। मंजिल (), छत (), निचला (), और उच्च () विधियाँ सेट में एक तत्व खोजती हैं जो पैरामीटर के करीब है। इसके अतिरिक्त, सेट में आइटम्स पर अवरोही पुनरावर्तक प्रदान किया जाता है। सॉर्टेडसेट के साथ, java.util.TreeSet नेविगेबलसेट को लागू करता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/NavigableSet.html |title=NavigableSet (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06}}</ref>
java.util.SortedSet को java.util.NavigableSet इंटरफ़ेस के माध्यम से विस्तारित किया गया है। यह सॉर्टेडसेट के समान है, लेकिन कुछ अतिरिक्त तरीके हैं। तल(), अन्तिम सीमा(), लघु(), और उच्च() पद्धतियां समूह में एक अंग खोजती हैं जो प्राचल के करीब है। इसके अतिरिक्त, समूह में वस्तुओं पर अवरोही पुनरावर्तक प्रदान किया जाता है। सॉर्टेडसेट के साथ, java.util.TreeSet नेविगेबलसेट को लागू करता है।<ref>{{cite web|url=http://docs.oracle.com/javase/7/docs/api/java/util/NavigableSet.html |title=NavigableSet (Java Platform SE 7 ) |publisher=Docs.oracle.com |date=2013-06-06}}</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.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>




== जावा संग्रह ढांचे के लिए एक्सटेंशन ==
== जावा संग्रह फ्रेमवर्क के लिए विस्तारण ==
जावा संग्रह ढांचे को [[अपाचे कॉमन्स]] कलेक्शंस लाइब्रेरी द्वारा विस्तारित किया गया है, जो संग्रह प्रकार जैसे बैग और द्विदिश मानचित्र, साथ ही यूनियनों और चौराहों को बनाने के लिए उपयोगिताओं को जोड़ता है।<ref>{{cite web|url=http://commons.apache.org/proper/commons-collections/ |title=संग्रह - होम|publisher=Commons.apache.org |date=2013-07-04 |access-date=2013-08-16}}</ref>
जावा संग्रह फ्रेमवर्क को [[अपाचे कॉमन्स]] संग्रह लाइब्रेरी द्वारा विस्तारित किया गया है, जो संग्रह प्रकार जैसे बैग और द्विदिश मानचित्रों के साथ- साथ यूनियनों और प्रतिच्छेदन को बनाने के लिए उपयोगिताओं को जोड़ता है।<ref>{{cite web|url=http://commons.apache.org/proper/commons-collections/ |title=संग्रह - होम|publisher=Commons.apache.org |date=2013-07-04 |access-date=2013-08-16}}</ref>                                                              
Google ने Google अमरूद के हिस्से के रूप में अपनी संग्रह लाइब्रेरी जारी की है।
गूगल ने गोवा के हिस्से के रूप में अपनी संग्रह लाइब्रेरी जारी की है।


== यह भी देखें ==
== यह भी देखें ==
{{Portal|Computer programming}}
{{Portal|Computer programming}}
* [[संग्रह (सार डेटा प्रकार)]]
* [[संग्रह (सार डेटा प्रकार)|संग्रह]]  
* [[कंटेनर (सार डेटा प्रकार)]]
* [[कंटेनर (सार डेटा प्रकार)|कंटेनर]]  
* मानक टेम्पलेट लाइब्रेरी
* मानक आदर्श लाइब्रेरी
* जावा समवर्ती
* जावा समरूपता
* [[जावा समवर्ती मानचित्र]]
* [[जावा समवर्ती मानचित्र]]


Line 138: Line 132:


-->
-->
[[Category: जावा (प्रोग्रामिंग भाषा)]] [[Category: डेटा संरचना पुस्तकालय और रूपरेखा]]


[[Category: Machine Translated Page]]
[[Category:Articles prone to spam from November 2018]]
[[Category:Articles with invalid date parameter in template]]
[[Category:Collapse templates]]
[[Category:Created On 24/02/2023]]
[[Category:Created On 24/02/2023]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with empty portal template]]
[[Category:Pages with script errors]]
[[Category:Portal-inline template with redlinked portals]]
[[Category:Portal templates with redlinked portals]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates using TemplateData]]
[[Category:Wikipedia metatemplates]]
[[Category:जावा (प्रोग्रामिंग भाषा)]]
[[Category:डेटा संरचना पुस्तकालय और रूपरेखा]]

Latest revision as of 10:20, 14 March 2023

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

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

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

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

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

विवरण

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

स्थापत्य

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

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

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

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

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

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

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

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

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

स्टैक वर्ग

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

पंक्ति इंटरफेस

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


इंटरफेस समूह

जावा का 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.