CodeGym /Java Blog /अनियमित /एक इंटरफ़ेस के रूप में जावा सेट
John Squirrels
स्तर 41
San Francisco

एक इंटरफ़ेस के रूप में जावा सेट

अनियमित ग्रुप में प्रकाशित
एक सेट बस अनूठी वस्तुओं का एक संग्रह है। अद्वितीय का अर्थ है कि किन्हीं भी दो वस्तुओं का मान समान नहीं हो सकता है। सेट के कार्यान्वयन के आधार पर, यह आदेश दिया जा सकता है या नहीं भी हो सकता है। सार डेटा प्रकार (एडीटी) के रूप में जावा सेट में कुछ प्रमुख ऑपरेशन हैं (जहां टी किसी भी डेटा प्रकार जैसे इंट, स्ट्रिंग या किसी क्लास ऑब्जेक्ट का प्रतिनिधित्व करता है): इंटरफ़ेस के रूप में जावा सेट - 1
  • boolean add(T item): यदि आइटम सेट में सफलतापूर्वक जोड़ा गया है, तो सही है, और यदि आइटम पहले से ही सेट में था, तो गलत है।
  • boolean remove(T item): यदि आइटम सेट से सफलतापूर्वक हटा दिया गया था और गलत अन्यथा (यदि आइटम सेट में नहीं था) तो सही है।
  • boolean contains(T item): यदि आइटम सेट में है और गलत है तो सही है।
  • boolean isEmpty(): अगर सेट खाली है और गलत है तो सही रिटर्न देता है।
जावा में सेट में सुंदर स्व-व्याख्यात्मक फ़ंक्शन हस्ताक्षर हैं (जैसा कि उन्हें होना चाहिए)। यदि आप एक सेट में दो समान आइटम जोड़ते हैं, तो केवल पहला जोड़ा आइटम सेट में होगा। जब तक आइटम को पहले हटा नहीं दिया जाता है, तब तक उसी आइटम को जोड़ने के सभी बाद के प्रयासों को अनदेखा कर दिया जाएगा। सबसे अधिक इस्तेमाल किए जाने वाले सेट ऑपरेशंस में से एक यह जांच कर रहा है कि कोई आइटम किसी दिए गए सेट के भीतर है या नहीं। फ़ंक्शन contains()इसके लिए एक अच्छा रनटाइम देता है: ओ (1) या ओ (लॉग एन) समय की जटिलता के आधार पर उपयोग किया जाने वाला कार्यान्वयन एक HashSetया ए हैTreeSet, क्रमश। तो एक सेट का उपयोग किस लिए किया जा सकता है? ठीक है, अगर आपको कभी भी कई अलग-अलग वस्तुओं का ट्रैक रखने की आवश्यकता होती है - जैसे कि आईडी, नाम, या अन्य विशिष्ट पहचानकर्ता - और बार-बार जांचते हैं कि क्या कोई आइटम इस तरह के संग्रह में मौजूद है, तो एक सेट संभवतः एक अच्छा विकल्प है। यहां एक सेट के उपयोग का उदाहरण दिया गया है: कल्पना करें कि आपके पास Studentदी गई कक्षा में सभी छात्रों का प्रतिनिधित्व करने वाली वस्तुओं की एक सूची है। इस वर्ग के लिए प्रत्येक का Studentएक अद्वितीय नाम (स्ट्रिंग) और ग्रेड (इंट) हो सकता है। यदि आप बार-बार सभी A छात्रों (ग्रेड >=90) की एक सूची का संदर्भ देना चाहते हैं, तो इस सूची को बार-बार देखना और प्रत्येक छात्र के ग्रेड की हर बार जांच करना थकाऊ होगा। इसके बजाय, आप a HashSetof 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) समय जटिलता है, जबकि HashSetO(1) या निरंतर समय जटिलता है; TreeSetहर समय आदेश बनाए रखना चाहिए । पहले उल्लेखित की सेट ऑपरेशंस के अलावा, जावा में HashSetऔर दोनों TreeSetके कुछ अन्य सहायक कार्य हैं:
  • void clear(): सभी वस्तुओं के सेट को साफ़ करता है।
  • int size(): सेट में वस्तुओं की संख्या लौटाता है।
  • Object clone(): सेट की उथली प्रति लौटाता है।
  • Iterator iterator(): सेट पर एक पुनरावर्तक लौटाता है, पहली वस्तु से शुरू होता है।
आप "A छात्रों की सूची" उदाहरण में इन कार्यों के लिए उपयोग खोजने की कल्पना कर सकते हैं: size()यदि आप यह देखना चाहते हैं कि आपके पास कितने 'A' छात्र हैं, या clear()यदि आप सेमेस्टर के अंत में सूची को खाली करना चाहते हैं, तो आप कॉल कर सकते हैं। आप clone()किसी विशिष्ट समय पर A छात्रों की सूची का क्लोन बनाने और रखने के लिए उपयोग कर सकते हैं, जैसे मध्यावधि रिपोर्ट के दौरान (इस तरह क्लोन मूल के साथ अप-टू-डेट नहीं रहता है)।

जावा हैशसेट उदाहरण

जावा में उपयोग किए जा रहे HashSeta का संक्षिप्त उदाहरण यहां दिया गया है :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

जावा ट्रीसेट उदाहरण

जावा सेट उदाहरण आपको सिद्धांत को समझने में मदद कर सकता है। जावा में उपयोग किए जा रहे a TreeSetof का संक्षिप्त उदाहरण यहां दिया गया है :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
बस इतना ही! आशा है कि इससे मदद मिली 😊
टिप्पणियां
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION