एक सेट बस अनूठी वस्तुओं का एक संग्रह है। अद्वितीय का अर्थ है कि किन्हीं भी दो वस्तुओं का मान समान नहीं हो सकता है। सेट के कार्यान्वयन के आधार पर, यह आदेश दिया जा सकता है या नहीं भी हो सकता है। सार डेटा प्रकार (एडीटी) के रूप में जावा सेट में कुछ प्रमुख ऑपरेशन हैं (जहां टी किसी भी डेटा प्रकार जैसे इंट, स्ट्रिंग या किसी क्लास ऑब्जेक्ट का प्रतिनिधित्व करता है):
boolean add(T item)
: यदि आइटम सेट में सफलतापूर्वक जोड़ा गया है, तो सही है, और यदि आइटम पहले से ही सेट में था, तो गलत है।boolean remove(T item)
: यदि आइटम सेट से सफलतापूर्वक हटा दिया गया था और गलत अन्यथा (यदि आइटम सेट में नहीं था) तो सही है।boolean contains(T item)
: यदि आइटम सेट में है और गलत है तो सही है।boolean isEmpty()
: अगर सेट खाली है और गलत है तो सही रिटर्न देता है।
contains()
इसके लिए एक अच्छा रनटाइम देता है: ओ (1) या ओ (लॉग एन) समय की जटिलता के आधार पर उपयोग किया जाने वाला कार्यान्वयन एक HashSet
या ए हैTreeSet
, क्रमश। तो एक सेट का उपयोग किस लिए किया जा सकता है? ठीक है, अगर आपको कभी भी कई अलग-अलग वस्तुओं का ट्रैक रखने की आवश्यकता होती है - जैसे कि आईडी, नाम, या अन्य विशिष्ट पहचानकर्ता - और बार-बार जांचते हैं कि क्या कोई आइटम इस तरह के संग्रह में मौजूद है, तो एक सेट संभवतः एक अच्छा विकल्प है। यहां एक सेट के उपयोग का उदाहरण दिया गया है: कल्पना करें कि आपके पास Student
दी गई कक्षा में सभी छात्रों का प्रतिनिधित्व करने वाली वस्तुओं की एक सूची है। इस वर्ग के लिए प्रत्येक का Student
एक अद्वितीय नाम (स्ट्रिंग) और ग्रेड (इंट) हो सकता है। यदि आप बार-बार सभी A छात्रों (ग्रेड >=90) की एक सूची का संदर्भ देना चाहते हैं, तो इस सूची को बार-बार देखना और प्रत्येक छात्र के ग्रेड की हर बार जांच करना थकाऊ होगा। इसके बजाय, आप a HashSet
of string का उपयोग कर सकते हैं जो कक्षा में सभी A छात्रों का ट्रैक रखता है, जैसे:
- हर बार छात्रों के ग्रेड अपडेट किए जाते हैं, आप आसानी से जांच सकते हैं कि छात्र का नया ग्रेड 90 से अधिक या उसके बराबर है या नहीं।
- यदि ऐसा है, तो उन्हें उपयोग करने वाले छात्रों के सेट में जोड़ें
add()
- यदि वे पहले से ही A छात्र थे, तो इस संक्रिया को सामान्य रूप से अनदेखा कर दिया जाता है।
- यदि नहीं, तो उन्हें प्रयोग करने वाले छात्रों के सेट से हटा दें
remove()
- यदि वे इस बिंदु पर A छात्र नहीं थे, तो इस संक्रिया को सामान्य रूप से अनदेखा कर दिया जाता है।
- यदि ऐसा है, तो उन्हें उपयोग करने वाले छात्रों के सेट में जोड़ें
contains(“Johnny Appleseed”)
सेट पर कॉल करके आसानी से ऐसा कर सकते हैं। बेशक, यह एक सेट के उपयोग के मामले का सिर्फ एक उदाहरण है, और ए छात्रों का ट्रैक रखने की इस विशिष्ट समस्या को अन्य तरीकों से हल किया जा सकता है।
कार्यान्वयन: जावा और जावा ट्रीसेट उदाहरणों में हैशसेट
HashSet
जावा और जावा दोनों TreeSet
में java.utils package
. आप उन्हें इस प्रकार आयात कर सकते हैं:
// imports everything from Java's util package, including HashSet and TreeSet
import java.util.*;
या
import java.util.HashSet; // imports only the Java HashSet
import java.util.TreeSet; // imports only the Java TreeSet
जावा HashSet
और जावा के बीच मुख्य अंतर TreeSet
यह है कि यह TreeSet
क्रमबद्ध है, जबकि यह HashSet
नहीं है। यही कारण है कि TreeSet
कुंजी संचालन के लिए O(log n) समय जटिलता है, जबकि HashSet
O(1) या निरंतर समय जटिलता है; TreeSet
हर समय आदेश बनाए रखना चाहिए । पहले उल्लेखित की सेट ऑपरेशंस के अलावा, जावा में HashSet
और दोनों TreeSet
के कुछ अन्य सहायक कार्य हैं:
void clear()
: सभी वस्तुओं के सेट को साफ़ करता है।int size()
: सेट में वस्तुओं की संख्या लौटाता है।Object clone()
: सेट की उथली प्रति लौटाता है।Iterator iterator()
: सेट पर एक पुनरावर्तक लौटाता है, पहली वस्तु से शुरू होता है।
size()
यदि आप यह देखना चाहते हैं कि आपके पास कितने 'A' छात्र हैं, या clear()
यदि आप सेमेस्टर के अंत में सूची को खाली करना चाहते हैं, तो आप कॉल कर सकते हैं। आप clone()
किसी विशिष्ट समय पर A छात्रों की सूची का क्लोन बनाने और रखने के लिए उपयोग कर सकते हैं, जैसे मध्यावधि रिपोर्ट के दौरान (इस तरह क्लोन मूल के साथ अप-टू-डेट नहीं रहता है)।
जावा हैशसेट उदाहरण
जावा में उपयोग किए जा रहेHashSet
a का संक्षिप्त उदाहरण यहां दिया गया है :String
import java.util.HashSet;
class HashSetDemo {
public static void main(String[] args)
{
// create a HashSet of Strings
HashSet<String> hs = new HashSet<String>();
// Add elements using the add() method
hs.add("Collin");
hs.add("Bob");
hs.add("Abigail");
// Duplicates will ignored; this statement is useless
hs.add("Collin");
System.out.println(hs);
System.out.println("Bob is in the set (T/F): " + hs.contains("Bob"));
System.out.println("Max is in the set (T/F): " + hs.contains("Max"));
}
}
आउटपुट: --------
[Collin, Bob, Abigail]
Bob is in the set (T/F): true
Max is in the set (T/F): false
जावा ट्रीसेट उदाहरण
जावा सेट उदाहरण आपको सिद्धांत को समझने में मदद कर सकता है। जावा में उपयोग किए जा रहे aTreeSet
of का संक्षिप्त उदाहरण यहां दिया गया है :String
import java.util.TreeSet;
class TreeSetDemo {
public static void main(String[] args)
{
// create a TreeSet of Strings
TreeSet<String> ts = new TreeSet<String>();
// Add elements using the add() method.
ts.add("Collin");
ts.add("Bob");
ts.add("Abigail");
// Duplicates will ignored; this statement is useless
ts.add("Collin");
// printing the set prints the names in alphabetical order!
System.out.println(ts);
System.out.println("Bob is in the set (T/F): " + ts.contains("Bob"));
System.out.println("Max is in the set (T/F): " + ts.contains("Max"));
System.out.println("Size of the set: " + ts.size());
ts.clear();
System.out.println("Size of the set after clear(): " + ts.size());
}
}
आउटपुट: -------
[Abigail, Bob, Collin]
Bob is in the set (T/F): true
Max is in the set (T/F): false
Size of the set: 3
Size of the set after clear(): 0
बस इतना ही! आशा है कि इससे मदद मिली 😊
GO TO FULL VERSION