परिचय

जवळजवळ प्रत्येक प्रोग्रामला काही डेटा संग्रहित करणे आवश्यक आहे. हे स्ट्रिंग आणि संख्या, ऑब्जेक्ट्स इत्यादी असू शकतात. अॅरे एक उत्कृष्ट स्टोरेज सोल्यूशन आहेत. पण अॅरेला काही मर्यादा आहेत. उदाहरणार्थ, त्यांचा आकार निश्चित आहे, घटक काढले जाऊ शकत नाहीत आणि आपण मध्यभागी घटक घालू शकत नाही. या आणि इतर मर्यादांवर जाण्यासाठी संग्रह तयार केले गेले. सर्व प्रकारच्या संग्रहांमध्ये (आणि त्यापैकी बरेच आहेत, जसे की आपण या धड्यात नंतर पाहू) गतिशीलपणे स्वतःचा आकार बदलण्याची क्षमता आहे. काही संग्रह प्रकार ऑर्डर केलेले घटक संग्रहित करू शकतात आणि नवीन घटक जोडले गेल्याने आपोआप क्रमाने ठेवू शकतात.

या धड्यात, आम्ही जावा कलेक्शन फ्रेमवर्कमधील बेस कलेक्शनच्या वर्ग पदानुक्रमाशी परिचित होऊ . मानक Java कलेक्शन फ्रेमवर्कची क्षमता वाढवणारी विविध पर्यायी लायब्ररी देखील आहेत . यातील सर्वात लोकप्रिय म्हणजे पेरू (गुगल कलेक्शन लायब्ररी).

*सर्व इंटरफेस आणि वर्ग आकृतीमध्ये दर्शवलेले नाहीत. समजायला सोपे जावे म्हणून काही वगळले.

मूलभूत इंटरफेस

आकृती दर्शवते की दोन मूलभूत इंटरफेस आहेत जे उर्वरित वर्ग आणि इंटरफेस तयार करण्यासाठी लागू केले जातात.

चला या इंटरफेसवर एक नजर टाकूया:

  1. संग्रह - एक सामान्य संग्रह ज्यामध्ये घटकांचा (वस्तूंचा) संच असतो. या संग्रहामध्ये घटकांसह कार्य करण्यासाठी मूलभूत पद्धती आहेत: घाला ( जोडा , सर्व जोडणे ), काढून टाका ( काढून टाका , सर्व काढून टाका , साफ करा ), शोधा ( समाविष्ट आहे , सर्व समाविष्ट आहे ), संग्रह रिक्त आहे का ते तपासा ( रिक्त आहे ) आणि आकार ( आकार ) मिळवा.

  2. नकाशा — की-व्हॅल्यू जोड्या म्हणून संरचित केलेला संग्रह. शिवाय, नकाशातील प्रत्येक कीअद्वितीय आहे: कोणत्याही दोन की सारखी मूल्ये नसतात. या संग्रहाला कधीकधी शब्दकोश म्हटले जाते. नकाशा हा एक वेगळा इंटरफेस आहे. हे कलेक्शन इंटरफेस लागू करत नाही , परंतु Java कलेक्शन फ्रेमवर्कचा भाग आहे.

नकाशामधील घटकांसह कार्य करण्यासाठी उपयुक्त पद्धती :

  • घाला ( पुट , सर्व ठेवा )

  • मिळवा ( मिळवा , कीसेट , मूल्ये , एंट्रीसेट )

  • काढा ( काढणे , साफ करणे )

  • शोधा ( समाविष्टकी , समाविष्ट मूल्य )

  • संग्रह रिकामा आहे का ते तपासा ( रिक्त आहे )

  • आकार मिळवा ( आकार )

आता त्या प्रत्येकाबद्दल अधिक बोलूया.

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

कलेक्शन इंटरफेस इटरेबल इंटरफेसचा विस्तार करतो, ज्याची एकच पद्धत आहे: iterator () . आमच्यासाठी, याचा अर्थ असा की कोणताही संग्रह जो इटरेबलचा वारसा घेतो तो पुनरावृत्ती करणारा परत करण्यास सक्षम असेल.

पुनरावृत्ती करणारा एक विशेष ऑब्जेक्ट आहे ज्याचा वापर आपण कोणत्याही संग्रहातील घटकांमध्ये प्रवेश करण्यासाठी करू शकता, त्याच्या विशिष्ट अंमलबजावणीकडे दुर्लक्ष करून.

आकृती दर्शवते की 3 इंटरफेस कलेक्शन इंटरफेसचे वारसा घेतात: सूची , रांग आणि सेट . आता आपण त्या प्रत्येकाकडे थोडक्यात पाहू.

सूची एक ऑर्डर केलेला संग्रह आहे जो डुप्लिकेट मूल्यांना अनुमती देतो. सूचीचे एक विशिष्ट वैशिष्ट्यम्हणजे त्यातील घटक क्रमांकित आहेत आणि संख्या (इंडेक्स) द्वारे प्रवेश केला जाऊ शकतो.

रांग घटकांना रांगेत जोडल्या गेलेल्या क्रमाने संग्रहित करते .

सूचीच्या विपरीत, एक संच अक्रमित संग्रह दर्शवितो जो पुनरावृत्ती घटकांना अनुमती देत ​​नाही. सेट इंटरफेस गणितीय संचाच्या संकल्पनेशी संबंधित आहे .

नकाशा इंटरफेसची अंमलबजावणी

आपण पाहू शकतो की नकाशा इंटरफेस अद्वितीय की आणि मूल्यांमधील मॅपिंग दर्शवतो.


interface Map<K, V>

जेथे K हा कळांचा प्रकार आहे आणि V हा संग्रहित मूल्यांचा प्रकार आहे.

की वापरून, आम्ही नकाशावरून डेटा काढू शकतो . नकाशामध्ये घटक जोडण्यासाठी , आपल्याला एक की आणि मूल्य निर्दिष्ट करणे आवश्यक आहे.

चला नकाशाची काही अंमलबजावणी पाहू :

  1. हॅशमॅप हे हॅश टेबलवर आधारित नकाशाची अंमलबजावणी आहेहे null सह कोणत्याही प्रकारच्या की आणि मूल्ये संचयित करू शकते. घटकांच्या क्रमाची हमी नाही.

  2. LinkedHashMap एक डेटा संरचना आहे जी घटकांची लिंक केलेली सूची म्हणून डेटा संग्रहित करते. घटक ज्या क्रमाने जोडले होते त्या क्रमाने सूचीमध्ये दिसतात.

  3. ट्रीमॅप सॉर्टेडमॅप इंटरफेस ( नॅव्हिगेबलमॅप इंटरफेसद्वारे) लागू करतो. या संरचनेतील घटक क्रमवारीत संग्रहित केले जातात (जेव्हा नवीन घटक जोडला जातो, संग्रह आपोआप क्रमवारी लावला जातो). जलद पुनर्प्राप्तीसह मोठ्या प्रमाणात क्रमवारी लावलेला डेटा संचयित करण्यासाठी TreeMap उत्तम आहे.

कालबाह्य संग्रह:

Java मध्ये मागील आवृत्त्यांचे अप्रचलित संग्रह आहेत (मागास अनुकूलता राखण्यासाठी). हे जुने संग्रह नवीन कोडमध्ये वापरले जाऊ नयेत:

  • गणन — इटरेटर इंटरफेसशी एकरूप;

  • वेक्टर — घटकांची क्रमबद्ध सूची आणि ArrayList वर्गाशी साधर्म्य असलेली;

  • स्टॅक — स्टॅक डेटा स्ट्रक्चरची अंमलबजावणी, जी तुम्ही पुस्तकांच्या स्टॅकशी कसा संवाद साधता यासारखे घटक संग्रहित आणि हाताळते. स्टॅकमध्ये घटक जोडण्याच्या पद्धती आहेत ( पुश ) आणि ते काढणे ( पॉप );

  • शब्दकोश नकाशा इंटरफेसशी साधर्म्य असलेला, परंतु तो एक अमूर्त वर्ग आहे;

  • हॅशटेबल हॅशमॅपशी साधर्म्य असलेले .

आपण या लेखातील संग्रह फ्रेमवर्कबद्दल अधिक वाचू शकता .