1. कंटेनर आणि संग्रह

कंटेनर किंवा संग्रह हे असे वर्ग आहेत जे तुम्हाला एकाच वेळी अनेक वस्तू संचयित आणि प्रक्रिया करू देतात. तुम्हाला आधीच दोन प्रकारचे कंटेनर माहित आहेत: अॅरे आणि लिस्ट.

Java मध्ये अनेक डझन संग्रह आहेत, त्यातील प्रत्येक घटक स्वतःच्या विशिष्ट पद्धतीने संग्रहित करतो. त्यापैकी काही येथे आहेत:

संकलन वर्ग वर्णन
List
ArrayList
यादी
LinkedList
लिंक केलेली यादी
Vector
वेक्टर
Stack
स्टॅक
Set
HashSet
सेट करा
TreeSet
LinkedHashSet
Queue
PriorityQueue
रांग
ArrayQueue
Map
HashMap
नकाशा/शब्दकोश
TreeMap
HashTable

येथे नावे काहीशी संदिग्ध आहेत. बर्‍याच प्रोग्रामिंग भाषांमध्ये, या सर्व डेटा स्ट्रक्चर्सना संग्रह म्हणतात, परंतु Java मध्ये नाही. Java मध्ये, यातील काही वर्ग इंटरफेस लागू करतात Collection, तर काही करत नाहीत.

त्यानुसार, संग्रह व्यापक अर्थाने संग्रह आणि संकुचित अर्थाने संग्रहांमध्ये विभागले गेले आहेत (केवळ इंटरफेस लागू करतात Collection).

त्यामुळे गोंधळ टाळण्यासाठी, जेव्हा आपण संग्रहांबद्दल बोलतो तेव्हा आपला अर्थ शब्दाच्या संकुचित अर्थाने होतो, म्हणजे इंटरफेसची अंमलबजावणी करणारे वर्ग Collection. List, Setआणि प्रकार Queueहे सर्व संग्रह आहेत. व्यापक अर्थाने संग्रहांना सामान्यतः कंटेनर म्हणतात . यामध्ये प्रकार Mapआणि अॅरे समाविष्ट आहेत.


2. HashSetसंकलन

वर्ग HashSetहा एक सामान्य संच संग्रह आहे. अनेक प्रकारे ते वर्गासारखेच आहे ArrayList. काही मार्गांनी, ती अधिक प्राचीन आवृत्ती आहे.

तुम्ही HashSetअसे विधान वापरून ऑब्जेक्ट तयार करू शकता:

HashSet<Type> name = new HashSet<Type>();

आम्ही संग्रहात कोणत्या Typeघटकांचा प्रकार ठेवू HashSet.

वर्गात HashSetखालील पद्धती आहेत:

पद्धत वर्णन
void add(Type value)
valueसंकलनात घटक जोडते
boolean remove(Type value)
valueसंकलनातून घटक काढून टाकते . असा घटक असल्यास
परत करतोtrue
boolean contains(Type value)
संग्रहात valueघटक आहे का ते तपासते
void clear()
सर्व घटक काढून संकलन साफ ​​करते
int size()
संकलनातील घटकांची संख्या मिळवते

येथे संच वापरण्याचे उदाहरण आहे.

चला एक प्रोग्राम लिहू ज्या वापरकर्त्याने नमस्कार केला तर त्याला अलविदा म्हणू. ते अधिक मनोरंजक बनवण्यासाठी, आम्ही आमच्या प्रोग्रामला अनेक भाषांमध्ये "हॅलो" समजण्याची क्षमता देऊ.

कोड नोंद
HashSet<String> set = new HashSet<String>();

set.add("Hello");
set.add("Hello");
set.add("Hola");
set.add("Bonjour");
set.add("Ciao");
set.add("Namaste");

Scanner console = new Scanner(System.in);
String str = console.nextLine();

if (set.contains(str))
   System.out.println("Goodbye!");
HashSetघटक संग्रहित करणारी एक वस्तू तयार करा String.


आम्ही व्हेरिएबलमध्ये विविध भाषांमध्ये शुभेच्छा जोडतो set.




कन्सोलमधून एक ओळ वाचा.


जर स्ट्रिंग आमच्या शुभेच्छांच्या सेटमध्ये असेल तर आम्ही निरोप देतो.


3. सेट करा

संकलन Setघटकांचा संच ठेवण्यासाठी डिझाइन केले आहे. म्हणूनच त्याला Set(सेट) म्हणतात. या संग्रहात तीन वैशिष्ट्ये आहेत.

सेटवर ऑपरेशन्स

तुम्ही एका सेटसह फक्त तीन गोष्टी करू शकता: सेटमध्ये घटक जोडा, सेटमधून घटक काढून टाका आणि सेटमध्ये विशिष्ट घटक आहे का ते तपासा. बस एवढेच.

ऑर्डर नाही

या संग्रहातील घटकांना निर्देशांक नाहीत. तुम्ही निर्देशांकानुसार घटक मिळवू शकत नाही किंवा विशिष्ट निर्देशांकावर संग्रहासाठी मूल्य लिहू शकत नाही. सेटमध्ये नाही get()आणि set()पद्धती असतात.

अद्वितीय घटक

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

घटक शोधत आहे

जेव्हा तुम्ही नवीन घटक जोडता, घटक काढून टाकता किंवा सेटमध्ये घटक अस्तित्वात आहे की नाही ते तपासता तेव्हा, घटकाचा शोध पद्धतीमध्ये केला जातो. उत्तीर्ण झालेल्या घटकाची तुलना संग्रहातील घटकांशी प्रथम द्वारे केली जाते hashCode()आणि नंतर मूल्ये जुळवून परत आल्यास hashCode(), द्वारे equals().



4. संकलनांची तुलना करणे: ListविSet

चला दोन प्रकारच्या संग्रहांची तुलना करूया: Listआणि Setआम्ही मुख्य फरक पाहू, जेव्हा एक दुसर्यापेक्षा अधिक फायदेशीर असेल आणि त्याउलट.

उदाहरण म्हणून खेळणी वापरून यादी आणि सेटची तुलना करण्याचा प्रयत्न करूया.

List(यादी) संग्रह हे खेळण्याच्या खोलीत भिंतीवर मांडलेल्या खेळण्यांच्या संचासारखे आहे. आपण सूचीच्या शेवटी एक खेळणी जोडू शकता. तुम्हाला खरोखर आवश्यक असल्यास, तुम्ही ते मध्यभागी देखील घालू शकता (परंतु काही विद्यमान खेळणी हलवावी लागतील).

प्रत्येक खेळण्याला एक निर्देशांक असतो. तुम्ही खेळण्यांचा निर्देशांकानुसार संदर्भ घेऊ शकता आणि टॉय नंबर 7 च्या जागी टॉय नंबर 13 देखील घेऊ शकता. तुम्ही टॉय नंबर 4 सूचीमधून काढून टाकू शकता. शेवटी, आपण सूचीतील प्रत्येक खेळण्यांची अनुक्रमणिका शिकू शकता.

Set(सेट) संग्रह मजल्याच्या मध्यभागी असलेल्या खेळण्यांच्या ढिगाप्रमाणे आहे. आपण ढिगाऱ्यात एक खेळणी जोडू शकता आणि आपण ढिगाऱ्यातून एक खेळणी काढू शकता. परंतु या खेळण्यांना त्यांच्याशी संबंधित निश्चित निर्देशांक नसतो.

किंवा समजा तुम्ही तुमच्या मुलाच्या वाढदिवसासाठी एक खेळणी निवडत आहात. प्रथम, त्याच्याकडे आधीच खेळणी आहे की नाही याचा विचार करा. त्याच्याकडे आधीपासून असलेली सर्व खेळणी खेळण्यांचा एक संच बनवतात जी तुम्ही विकत घेणे निवडणार नाही.

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

यासारख्या प्रकरणांसाठी, आपल्याला Setसंग्रह आवश्यक आहे. त्याची सर्वात लोकप्रिय अंमलबजावणी HashSetवर्ग आहे.