जावा हैशसेट

इस ट्यूटोरियल में, हम जावा हैशसेट क्लास के बारे में जानेंगे। हम उदाहरणों की मदद से विभिन्न हैश सेट विधियों और संचालन के बारे में जानेंगे।

HashSetजावा कलेक्शंस फ्रेमवर्क का वर्ग हैश टेबल डेटा संरचना की कार्यक्षमता प्रदान करता है।

यह सेट इंटरफ़ेस को लागू करता है।

हैशसेट बनाना

हैश सेट बनाने के लिए, हमें java.util.HashSetपहले पैकेज को आयात करना होगा ।

एक बार जब हम पैकेज आयात करते हैं, तो यहां बताया गया है कि हम जावा में हैश सेट कैसे बना सकते हैं।

 // HashSet with 8 capacity and 0.75 load factor HashSet numbers = new HashSet(8, 0.75); 

यहाँ, हमने एक हैश सेट बनाया है जिसका नाम है numbers

नोटिस, हिस्सा नया HashSet(8, 0.75)। यहां, पहला पैरामीटर क्षमता है , और दूसरा पैरामीटर लोडफ़ैक्टर है

  • क्षमता - इस हैश सेट की क्षमता 8. है, यह 8 तत्वों को संग्रहीत कर सकता है।
  • loadFactor - इस हैश सेट का भार कारक 0.6 है। इसका मतलब है, जब भी हमारा हैश सेट 60% से भरा होता है, तो तत्वों को मूल हैश तालिका के आकार के दोगुने के एक नए हैश तालिका में ले जाया जाता है।

डिफ़ॉल्ट क्षमता और लोड कारक

अपनी क्षमता और भार कारक को परिभाषित किए बिना एक हैश तालिका बनाना संभव है। उदाहरण के लिए,

 // HashSet with default capacity and load factor HashSet numbers1 = new HashSet(); 

डिफ़ॉल्ट रूप से,

  • हैश सेट की क्षमता 16 होगी
  • लोड फैक्टर 0.75 होगा

हैशसेट के तरीके

HashSetवर्ग के लिए विभिन्न तरीकों है कि हम सेट पर विभिन्न कार्य करने की अनुमति प्रदान करता है।

तत्वों को हैशसेट में डालें

  • add() - सेट करने के लिए निर्दिष्ट तत्व सम्मिलित करता है
  • addAll() - सेट करने के लिए निर्दिष्ट संग्रह के सभी तत्वों को सम्मिलित करता है

उदाहरण के लिए,

 import java.util.HashSet; class Main ( public static void main(String() args) ( HashSet evenNumber = new HashSet(); // Using add() method evenNumber.add(2); evenNumber.add(4); evenNumber.add(6); System.out.println("HashSet: " + evenNumber); HashSet numbers = new HashSet(); // Using addAll() method numbers.addAll(evenNumber); numbers.add(5); System.out.println("New HashSet: " + numbers); ) ) 

आउटपुट

 हैशसेट: (2, 4, 6) न्यू हैशसेट: (2, 4, 5, 6) 

हैशसेट तत्वों तक पहुँचें

हैश सेट के तत्वों का उपयोग करने के लिए, हम iterator()विधि का उपयोग कर सकते हैं । इस पद्धति का उपयोग करने के लिए, हमें java.util.Iteratorपैकेज को आयात करना चाहिए । उदाहरण के लिए,

 import java.util.HashSet; import java.util.Iterator; class Main ( public static void main(String() args) ( HashSet numbers = new HashSet(); numbers.add(2); numbers.add(5); numbers.add(6); System.out.println("HashSet: " + numbers); // Calling iterator() method Iterator iterate = numbers.iterator(); System.out.print("HashSet using Iterator: "); // Accessing elements while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) ) 

आउटपुट

 HashSet: (2, 5, 6) Iterator का उपयोग करके HashSet: 2, 5, 6, 

तत्वों को निकालें

  • remove() - सेट से निर्दिष्ट तत्व निकालता है
  • removeAll() - सेट से सभी तत्वों को निकालता है

उदाहरण के लिए,

 import java.util.HashSet; class Main ( public static void main(String() args) ( HashSet numbers = new HashSet(); numbers.add(2); numbers.add(5); numbers.add(6); System.out.println("HashSet: " + numbers); // Using remove() method boolean value1 = numbers.remove(5); System.out.println("Is 5 removed? " + value1); boolean value2 = numbers.removeAll(numbers); System.out.println("Are all elements removed? " + value2); ) ) 

आउटपुट

हैशसेट: (2, 5, 6) क्या 5 को हटाया गया है? क्या सभी तत्व हटा दिए गए हैं? सच

संचालन सेट करें

HashSetकक्षा के विभिन्न तरीकों का उपयोग विभिन्न सेट ऑपरेशन करने के लिए भी किया जा सकता है।

सेटों का संघ

दो सेटों के बीच संघ का प्रदर्शन करने के लिए, हम addAll()विधि का उपयोग कर सकते हैं । उदाहरण के लिए,

 import java.util.HashSet; class Main ( public static void main(String() args) ( HashSet evenNumbers = new HashSet(); evenNumbers.add(2); evenNumbers.add(4); System.out.println("HashSet1: " + evenNumbers); HashSet numbers = new HashSet(); numbers.add(1); numbers.add(3); System.out.println("HashSet2: " + numbers); // Union of two set numbers.addAll(evenNumbers); System.out.println("Union is: " + numbers); ) ) 

आउटपुट

 HashSet1: (2, 4) HashSet2: (1, 3) संघ है: (1, 2, 3, 4) 

समुच्चय का अंतर

दो सेट के बीच चौराहे प्रदर्शन करने के लिए, हम retainAll()विधि का उपयोग कर सकते हैं । उदाहरण के लिए

 import java.util.HashSet; class Main ( public static void main(String() args) ( HashSet primeNumbers = new HashSet(); primeNumbers.add(2); primeNumbers.add(3); System.out.println("HashSet1: " + primeNumbers); HashSet evenNumbers = new HashSet(); evenNumbers.add(2); evenNumbers.add(4); System.out.println("HashSet2: " + evenNumbers); // Intersection of two sets evenNumbers.retainAll(primeNumbers); System.out.println("Intersection is: " + evenNumbers); ) ) 

आउटपुट

 HashSet1: (2, 3) HashSet2: (2, 4) प्रतिच्छेदन है: (2) 

सेट का अंतर

दो सेटों के बीच अंतर की गणना करने के लिए, हम removeAll()विधि का उपयोग कर सकते हैं । उदाहरण के लिए,

 import java.util.HashSet; class Main ( public static void main(String() args) ( HashSet primeNumbers = new HashSet(); primeNumbers.add(2); primeNumbers.add(3); primeNumbers.add(5); System.out.println("HashSet1: " + primeNumbers); HashSet oddNumbers = new HashSet(); oddNumbers.add(1); oddNumbers.add(3); oddNumbers.add(5); System.out.println("HashSet2: " + oddNumbers); // Difference between HashSet1 and HashSet2 primeNumbers.removeAll(oddNumbers); System.out.println("Difference : " + primeNumbers); ) ) 

आउटपुट

 हैशसेट 1: (2, 3, 5) हैशसेट 2: (1, 3, 5) अंतर: (2) 

सबसेट

यह जांचने के लिए कि एक सेट दूसरे सेट का सबसेट है या नहीं, हम containsAll()विधि का उपयोग कर सकते हैं । उदाहरण के लिए,

 import java.util.HashSet; class Main ( public static void main(String() args) ( HashSet numbers = new HashSet(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); System.out.println("HashSet1: " + numbers); HashSet primeNumbers = new HashSet(); primeNumbers.add(2); primeNumbers.add(3); System.out.println("HashSet2: " + primeNumbers); // Check if primeNumbers is a subset of numbers boolean result = numbers.containsAll(primeNumbers); System.out.println("Is HashSet2 is subset of HashSet1? " + result); ) ) 

आउटपुट

HashSet1: (1, 2, 3, 4) HashSet2: (2, 3) क्या HashSet2 HashSet1 का सबसेट है? सच

हैशसेट के अन्य तरीके

तरीका विवरण
clone() की एक प्रति बनाता है HashSet
contains() HashSetनिर्दिष्ट तत्व के लिए खोज करता है और एक बूलियन परिणाम देता है
isEmpty() चेक करता है कि HashSetक्या खाली है
size() का आकार लौटाता है HashSet
clear() से सभी तत्वों को निकालता है HashSet

HashSet विधियों के बारे में अधिक जानने के लिए, Java HashSet (आधिकारिक जावा प्रलेखन) पर जाएँ।

हशसेट क्यों?

जावा में, HashSetआमतौर पर उपयोग किया जाता है यदि हमें तत्वों को यादृच्छिक रूप से एक्सेस करना है। यह इसलिए है क्योंकि हैश तालिका में तत्वों को हैश कोड का उपयोग करके एक्सेस किया जाता है।

किसी तत्व का हैशकोड एक विशिष्ट पहचान है जो तत्व को हैश तालिका में पहचानने में मदद करता है।

HashSetडुप्लिकेट तत्व नहीं हो सकते। इसलिए, प्रत्येक हैश सेट तत्व में एक अद्वितीय हैशकोड होता है।

नोट: हैशसेट सिंक्रनाइज़ नहीं है। यदि कई थ्रेड एक ही समय में हैश सेट तक पहुँचते हैं और थ्रेड्स में से एक हैश सेट को संशोधित करता है। फिर इसे बाहरी रूप से सिंक्रनाइज़ किया जाना चाहिए।

दिलचस्प लेख...