Last Updated on August 31, 2023 by RAJENDRAPRASAD
Collections Framework in Java in Hindi – Hello दोस्तों rajhindime.in में आपका स्वागत है |
दोस्तों, पिछले post User defined Custom Exception in Java in Hindi में आपने जाना कि Custom Exception क्या है, उसकी क्यों जरुरत है और उसे create तथा use कैसे करते हैं |
आज के इस post में आप Collection Framework के बारे में विस्तार से जानेंगे |
दोस्तों, जैसा कि आप जानते हैं एक int value को represent करने के लिए एक variable की जरुरत होती है |
int x =10;
दो int value 10 और 20 को represent करने के लिए दो variable की जरुरत होगी |
int x=10;
int y=20;
उसी तरह 3 value को represent करने के लिए 3 variable की जरुरत होगी|
मान लो, हमें 10000 values को represent करना है, इस case में 10000 variables declare करना सबसे ख़राब programming practice है, इससे program में number of statements बढ़ने के साथ ही साथ इसकी readability भी ख़राब हो जाएगी |
इस problem को solve करने के लिए java में Array का concept लाया गया | जाने Arrays क्या है ?
Array की सबसे बड़ी विशेषता यह है कि हम एक ही variable द्वारा बहुत सारे values को represent कर सकते हैं |
परन्तु, Array में बहुत सारी कमियाँ भी हैं |आइए जानें |
Limitations in Arrays:
1. Fixed in size : एक बार हमने किसी size का array declare कर दिया, उसके बाद उसके size को अपने requirement के हिसाब से न तो बढ़ा सकते हैं और न ही घटा सकते हैं |
2. Homogeneous data : Array केवल homogeneous data object को ही represent करता है, अर्थात एक ही type के object को hold करता है, हालाँकि इसका solution भी है, हम object type का array declare करके उसमे Heterogeneous (अलग-अलग types के) data object को store कर सकते हैं |
3. Absence of Underlying Data structure: Array concept को किसी भी standard data structure को ध्यान में रखकर implement नहीं किया गया है, इसलिए data को process/manipulate करने के लिए इसमें कोई readymade functions available नहीं हैं | हर काम को करने के लिए हमें manually ही functions लिखना पड़ता है |
Need of Collections:
Arrays की कमियों को दूर करने के लिए Collections concept को लाया गया |
Collections, Arrays की सारी कमियों को पूरा करता है जैसे,
1. इसका size growable in nature है, अर्थात requirement के हिसाब से इसका size अपने आप increase अथवा decrease हो सकता है|
2. यह homogeneous और heterogeneous दोनों ही types के data object को support करता है |
3. सभी collection class को, standard data structure के आधार पर ही बनाया गया है | इससे, इसमें किसी भी कार्य को करने के लिए readymade functions available हैं |
अब तक हमने जितना भी जाना, उससे आप लोगो को लगता होगा की हमें हमेशा Collections को ही use करना चाहिए |
परन्तु प्रश्न यह उठता है कि Arrays का use करें या फिर न करे ?
जब भी हमें Size पहले से ही ज्ञात हो, तब हमें हमेशा Arrays ही use करना चाहिए |
अब आप बोलेंगे कि जब Collections, growable in nature है तो उसे ही क्यों न use करें ?
Collection, growable in nature तो है ही, परन्तु यह सब आसानी से तुरंत नहीं होता, इसका size increase या decrease होने में, data के अनुसार समय भी लगता है, इसे performance पर फर्क पड़ता है |
आइए इसे example द्वारा समझें,
मान लो, हमने एक Arrays define किया जिसका size 10 है, अब उसमे हमने index 0 से लेकर index 9 तक, total 10 element store कर दिया | अब हमें 11th element को store करना है, इस स्थिति में, Arrays में यह तो impossible है, क्योकि इसका size तो fixed होता है |
मान लो, हमने Arrays की जगह, ArrayList (जो कि collections का एक class है) को use किया है, अब हमें इसमें 11th element को add करना है, चूँकि यह growable in nature है, इसका मतलब यह नहीं है कि इसमें directly 11th element add हो जायेगा |
इसके लिए Java memory में, एक नया ArrayList object create होगा, जिसका size पहले वाले ArrayList object से कुछ बड़ा होगा|
अब एक-एक करके, सारा data पुराने object से new वाले object में copy होगा, उसके बाद उसमे 11th element add होगा और बाद में पुराना वाला object Garbage collector द्वारा delete कर दिया जायेगा |
अब ध्यान दो यह जो data old object से new object में copy होता है उसमे समय लगता है | यहाँ यह सब ताम-झाम केवल एक 11th element को add करने के लिए ही हुआ है |
इसी तरह मान लो हमारे old ArrayList object में 1 crore data है और हमें अब 1 crore 1st data को add करना है, फिर से केवल एक element के लिए नया ArryaList object बनेगा और फिर पुरे 1 crore element copy होंगे, तब कही जाकर 1crore 1st element add होगा | इस पुरे 1 crore element को copy होने में कितना समय लगेगा, अनुमान लगाइए |
इसलिए सारांश यही है कि जब size ज्ञात हो, तब केवल और केवल Arrays ही use करें |
अब आप समझ ही गए होंगे कि कब Array use करें और कब Collections|
आइए एक बार Arrays और Collections के difference को समझें |
Difference between Arrays and Collections:
Arrays | Collections |
Size fixed होता है | Size growable in Nature होता है अर्थात, जरुरत के हिसाब से size को कम अथवा ज्यादा कर सकते हैं | |
अगर size पहले से ज्ञात हो, तभी Array का use करना चाहिए | | अगर size पहले से ज्ञात न हो तब Collections का use करना चाहिए | |
Performance Fast होता है | | Performance slow होता है |
Arrays केवल homogeneous data object को ही represent करता है, अर्थात एक ही type के object को hold करता है | | यह homogeneous और heterogeneous दोनों ही types के data object को support करता है | |
Arrays concept को किसी भी standard data structure को ध्यान में रखकर implement नहीं किया गया है, इसलिए data को process/manipulate करने के लिए इसमें कोई readymade functions available नहीं है | | सभी collections class को, standard data structure के आधार पर ही बनाया गया है | इससे, इसमें किसी भी कार्य को करने के लिए readymade functions available हैं | |
यह Primitives और object type दोनों को hold कर सकता है | | यह केवल object type को ही hold कर सकता है | primitive data types को नहीं hold करता | |
दोस्तों, अब आगे बढ़ने से पहले, आइए एक बार collection, collection framework और collections के difference को समझ लें वरना ये आपको बार बार confuse करते रहेंगे |
Collection क्या है ?
Collection का हिंदी में अर्थ होता है संग्रह |
संग्रह क्या होता है ? किसी भी वस्तु का समूह/group जैसे, किताबों का समूह, खिलौनों का समूह, pen का समूह इत्यादि, इन सब को हम संग्रह या collection कह सकते हैं |
Collection का मतलब है “group of individual objects” अर्थात व्यक्तिगत वस्तुओं के समूह |
यदि हम individual objects के group को एक entity/इकाई के रूप में प्रस्तुत करना चाहते हैं, तो हमें Collection का use करना चाहिए |
Java में Collection एक interface है, जिसका use individual objects के group को एक entity के रूप में प्रस्तुत करने के लिए किया जाता है |
Collections क्या है ?
Java में Collections यह एक utility class है जो, java.util package में present है, जिसके अंदर बहुत सारे utility methods हैं जैसे, sorting, searching |
इन methods का use Collection objects को process/manipulate करने के लिए किया जाता है |
Collections framework क्या है ?
individual objects के group को एक entity के रूप में प्रस्तुत करने के लिए बहुत सारे interface और classes की जरुरत होती है | Collection framework उन सभी interface और classes को उपलब्ध करता है |
Collection framework यह एक class library है, जिसका काम group of objects को handle करना है |
इसे java.util package में implement किया गया है |
Java Collections framework Hierarchy:
Collection framework में 9 key interfaces हैं |
अगर Collections Framework को हम दो भागो में बातें तो, इसका पहला भाग
Group of individual objects को एक single entity के रूप में represent करता है, जिसमें 7 interfaces हैं और इसका root interface Collection है |
और दूसरा भाग group of individual object को key-value pair के रूप में represent करता है, जिसमें 2 interface हैं और इसका root interface Map है |
Key-value pair ka अर्थ है, दो data का जोड़ा जैसे, किसी class के students को उनके rollNumber और Name के रूप में represent करना | example “1-Ram”, “2-Raj”, “3-Janhvi” इत्यादि | यहाँ rollNumber key है, aur Name Value है |
इस तरह Collections framework में दो main interface हैं:
1. Collection
2. Map
NOTE: दोनों ही interface, class hierarchy के हिसाब से बिल्कुल भी related नहीं हैं, न तो Collection, Map को extend करता है और न ही Map, Collection को extend करता है | फिर भी दोनों ही interface Java Collection Framework का हिस्सा हैं |
Collection Interface Hierarchy:
Explanation:
ऊपर के image में List, Set, SortedSet, NavigableSet, Queue और PriorityQueue यह सभी interface हैं और बाकी अन्य class हैं |
Map Interface Hierarchy:
Explanation:
ऊपर के image में Map, SortedMap और NavigableMap यह सभी interface हैं और बाकी अन्य class हैं |
NOTE: class Hashtable, class Dictionary को inherit/extends कर रहा है |
Conclusion – आज आपने क्या सीखा
इस post में आपने जाना कि Collections क्या है, इसकी जरुरत क्यों पड़ी और Collection Framework की class hierarchy क्या है |
आशा है कि, आपको मेरा यह Blog Collections Framework in Java in Hindi जरूर पसंद आया होगा |
अगर आप इस post से related कोई सवाल पूँछना चाहते हैं अथवा कोई सुझाव देना चाहते हैं तो comment करके जरूर बताएं, मैं उसका reply जरूर दूँगा |
इस post को अपना कीमती समय देने के लिए बहुत बहुत धन्यवाद् | फिर मिलेंगें |