इस ट्यूटोरियल में, हम उदाहरणों की मदद से जावा लिंक्डहैश क्लास और उसके तरीकों के बारे में जानेंगे।
LinkedHashSet
जावा संग्रह ढांचे का वर्ग हैशटेबल और लिंक्ड सूची डेटा संरचना दोनों की कार्यक्षमता प्रदान करता है।
यह सेट इंटरफ़ेस को लागू करता है।
तत्वों LinkedHashSet
को हैशसेट के समान हैश टेबल में संग्रहीत किया जाता है।
हालाँकि, लिंक किए गए हैश सेट अपने सभी तत्वों के लिए आंतरिक रूप से एक दोहरी-लिंक्ड सूची बनाए रखते हैं। लिंक की गई सूची उस क्रम को परिभाषित करती है जिसमें तत्व हैश टेबल में डाले गए हैं।
एक LinkedHashSet बनाएं
लिंक किए गए हैश सेट बनाने के लिए, हमें java.util.LinkedHashSet
पहले पैकेज को आयात करना होगा ।
एक बार जब हम पैकेज आयात करते हैं, तो यहां हम जावा में लिंक किए गए हैश सेट बना सकते हैं।
// LinkedHashSet with 8 capacity and 0.75 load factor LinkedHashSet numbers = new LinkedHashSet(8, 0.75);
यहां, हमने एक लिंक किया गया हैश सेट नाम संख्या बनाया है।
नोटिस, भाग new LinkedHashSet(8, 0.75)
। यहां, पहला पैरामीटर क्षमता है और दूसरा पैरामीटर लोडफैक्टर है ।
- क्षमता - इस हैश सेट की क्षमता 8. है, यह 8 तत्वों को संग्रहीत कर सकता है।
- loadFactor - इस हैश सेट का भार कारक 0.6 है। इसका मतलब है, जब भी हमारी हैश तालिका 60% से भर जाती है, तो तत्वों को मूल हैश तालिका के आकार के दोगुने के नए हैश तालिका में ले जाया जाता है।
डिफ़ॉल्ट क्षमता और लोड कारक
इसकी क्षमता और भार कारक को परिभाषित किए बिना एक लिंक किया गया हैश सेट बनाना संभव है। उदाहरण के लिए,
// LinkedHashSet with default capacity and load factor LinkedHashSet numbers1 = new LinkedHashSet();
डिफ़ॉल्ट रूप से,
- लिंक किए गए हैश सेट की क्षमता 16 होगी
- लोड फैक्टर 0.75 होगा
अन्य संग्रह से LinkedHashSet बनाना
यहां बताया गया है कि कैसे हम अन्य संग्रह के सभी तत्वों से युक्त एक जुड़ा हुआ हैश सेट बना सकते हैं।
import java.util.LinkedHashSet; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an arrayList of even numbers ArrayList evenNumbers = new ArrayList(); evenNumbers.add(2); evenNumbers.add(4); System.out.println("ArrayList: " + evenNumbers); // Creating a LinkedHashSet from an ArrayList LinkedHashSet numbers = new LinkedHashSet(evenNumbers); System.out.println("LinkedHashSet: " + numbers); ) )
आउटपुट
ArrayList: (2, 4) लिंक्ड हैशसेट: (2, 4)
लिंक्डहाशसेट के तरीके
LinkedHashSet
वर्ग तरीकों कि हमें जुड़ा हुआ हैश सेट पर विभिन्न कार्य करने की अनुमति प्रदान करता है।
LinkedHashSet में एलिमेंट्स डालें
add()
- लिंक किए गए हैश सेट में निर्दिष्ट तत्व सम्मिलित करता हैaddAll()
- लिंक किए गए हैश सेट में निर्दिष्ट संग्रह के सभी तत्वों को सम्मिलित करता है
उदाहरण के लिए,
import java.util.LinkedHashSet; class Main ( public static void main(String() args) ( LinkedHashSet evenNumber = new LinkedHashSet(); // Using add() method evenNumber.add(2); evenNumber.add(4); evenNumber.add(6); System.out.println("LinkedHashSet: " + evenNumber); LinkedHashSet numbers = new LinkedHashSet(); // Using addAll() method numbers.addAll(evenNumber); numbers.add(5); System.out.println("New LinkedHashSet: " + numbers); ) )
आउटपुट
लिंक्ड हैशसेट: (2, 4, 6) न्यू लिंक्डशैसेट: (2, 4, 6, 5)
LinkedHashSet तत्वों तक पहुँचें
लिंक किए गए हैश सेट के तत्वों तक पहुंचने के लिए, हम iterator()
विधि का उपयोग कर सकते हैं । इस पद्धति का उपयोग करने के लिए, हमें java.util.Iterator
पैकेज को आयात करना चाहिए । उदाहरण के लिए,
import java.util.LinkedHashSet; import java.util.Iterator; class Main ( public static void main(String() args) ( LinkedHashSet numbers = new LinkedHashSet(); numbers.add(2); numbers.add(5); numbers.add(6); System.out.println("LinkedHashSet: " + numbers); // Calling the iterator() method Iterator iterate = numbers.iterator(); System.out.print("LinkedHashSet using Iterator: "); // Accessing elements while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) )
आउटपुट
लिंक्डहाशसेट: (2, 5, 6) लिंक्डहाशसेट का उपयोग इटरेटर: 2, 5, 6,
नोट :
hasNext()
true
यदि लिंक किए गए हैश सेट में एक अगला तत्व है, तो रिटर्नnext()
लिंक किए गए हैश सेट में अगला तत्व देता है
HashSet से तत्वों को निकालें
remove()
- लिंक किए गए हैश सेट से निर्दिष्ट तत्व को निकालता हैremoveAll()
- जुड़े हुए हैश सेट से सभी तत्वों को निकालता है
उदाहरण के लिए,
import java.util.LinkedHashSet; class Main ( public static void main(String() args) ( LinkedHashSet numbers = new LinkedHashSet(); numbers.add(2); numbers.add(5); numbers.add(6); System.out.println("LinkedHashSet: " + numbers); // Using the 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 को हटा दिया गया है? क्या सभी तत्व हटा दिए गए हैं? सच
संचालन सेट करें
LinkedHashSet
कक्षा के विभिन्न तरीकों का उपयोग विभिन्न सेट ऑपरेशन करने के लिए भी किया जा सकता है।
सेटों का संघ
दो दो सेटों के बीच मिलन करते हैं, हम addAll()
विधि का उपयोग कर सकते हैं । उदाहरण के लिए,
import java.util.LinkedHashSet; class Main ( public static void main(String() args) ( LinkedHashSet evenNumbers = new LinkedHashSet(); evenNumbers.add(2); evenNumbers.add(4); System.out.println("LinkedHashSet1: " + evenNumbers); LinkedHashSet numbers = new LinkedHashSet(); numbers.add(1); numbers.add(3); System.out.println("LinkedHashSet2: " + numbers); // Union of two set numbers.addAll(evenNumbers); System.out.println("Union is: " + numbers); ) )
आउटपुट
लिंक्ड हैशसेट 1: (2, 4) लिंक्ड हशसेट 2: (1, 3) यूनियन है: (1, 3, 2, 4)
समुच्चय का अंतर
To perform the intersection between two sets, we can use the retainAll()
method. For example
import java.util.LinkedHashSet; class Main ( public static void main(String() args) ( LinkedHashSet primeNumbers = new LinkedHashSet(); primeNumbers.add(2); primeNumbers.add(3); System.out.println("LinkedHashSet1: " + primeNumbers); LinkedHashSet evenNumbers = new LinkedHashSet(); evenNumbers.add(2); evenNumbers.add(4); System.out.println("LinkedHashSet2: " + evenNumbers); // Intersection of two sets evenNumbers.retainAll(primeNumbers); System.out.println("Intersection is: " + evenNumbers); ) )
Output
LinkedHashSet1: (2, 3) LinkedHashSet2: (2, 4) Intersection is: (2)
Difference of Sets
To calculate the difference between the two sets, we can use the removeAll()
method. For example,
import java.util.LinkedHashSet; class Main ( public static void main(String() args) ( LinkedHashSet primeNumbers = new LinkedHashSet(); primeNumbers.add(2); primeNumbers.add(3); primeNumbers.add(5); System.out.println("LinkedHashSet1: " + primeNumbers); LinkedHashSet oddNumbers = new LinkedHashSet(); oddNumbers.add(1); oddNumbers.add(3); oddNumbers.add(5); System.out.println("LinkedHashSet2: " + oddNumbers); // Difference between LinkedHashSet1 and LinkedHashSet2 primeNumbers.removeAll(oddNumbers); System.out.println("Difference : " + primeNumbers); ) )
Output
LinkedHashSet1: (2, 3, 5) LinkedHashSet2: (1, 3, 5) Difference: (2)
Subset
To check if a set is a subset of another set or not, we can use the containsAll()
method. For example,
import java.util.LinkedHashSet; class Main ( public static void main(String() args) ( LinkedHashSet numbers = new LinkedHashSet(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(4); System.out.println("LinkedHashSet1: " + numbers); LinkedHashSet primeNumbers = new LinkedHashSet(); primeNumbers.add(2); primeNumbers.add(3); System.out.println("LinkedHashSet2: " + primeNumbers); // Check if primeNumbers is a subset of numbers boolean result = numbers.containsAll(primeNumbers); System.out.println("Is LinkedHashSet2 is subset of LinkedHashSet1? " + result); ) )
Output
LinkedHashSet1: (1, 2, 3, 4) LinkedHashSet2: (2, 3) Is LinkedHashSet2 is a subset of LinkedHashSet1? true
Other Methods Of LinkedHashSet
Method | Description |
---|---|
clone() | Creates a copy of the LinkedHashSet |
contains() | Searches the LinkedHashSet for the specified element and returns a boolean result |
isEmpty() | Checks if the LinkedHashSet is empty |
size() | Returns the size of the LinkedHashSet |
clear() | Removes all the elements from the LinkedHashSet |
To learn more about LinkedHashSet
methods, visit Java LinkedHashSet (official Java documentation).
LinkedHashSet Vs. HashSet
Both LinkedHashSet
and HashSet
implements the Set
interface. However, there exist some differences between them.
LinkedHashSet
maintains a linked list internally. Due to this, it maintains the insertion order of its elements.- The
LinkedHashSet
class requires more storage thanHashSet
. This is becauseLinkedHashSet
maintains linked lists internally. - The performance of
LinkedHashSet
is slower thanHashSet
. It is because of linked lists present inLinkedHashSet
.
LinkedHashSet Vs. TreeSet
Here are the major differences between LinkedHashSet
and TreeSet
:
TreeSet
वर्ग को लागू करता हैSortedSet
इंटरफ़ेस। इसीलिए ट्री सेट में तत्वों को छांटा जाता है। हालाँकि,LinkedHashSet
वर्ग केवल अपने तत्वों के सम्मिलन क्रम को बनाए रखता है।- ए
TreeSet
आमतौर पर एक से धीमी हैLinkedHashSet
। ऐसा इसलिए है क्योंकि जब भी किसी तत्व को इसमें जोड़ा जाता हैTreeSet
, तो उसे छांटना ऑपरेशन करना पड़ता है। LinkedHashSet
शून्य मानों के सम्मिलन की अनुमति देता है। हालाँकि, हम शून्य मान नहीं डाल सकते हैंTreeSet
।