Java Language
सेट
खोज…
मूल्यों के साथ एक हैशसेट की घोषणा करना
आप एक नया वर्ग बना सकते हैं जो HashSet से विरासत में मिला है:
Set<String> h = new HashSet<String>() {{
add("a");
add("b");
}};
एक पंक्ति समाधान:
Set<String> h = new HashSet<String>(Arrays.asList("a", "b"));
अमरूद का उपयोग:
Sets.newHashSet("a", "b", "c")
धाराओं का उपयोग करना:
Set<String> set3 = Stream.of("a", "b", "c").collect(toSet());
प्रकार और सेट का उपयोग
आम तौर पर, सेट एक प्रकार का संग्रह होता है जो अद्वितीय मूल्यों को संग्रहीत करता है। विशिष्टता equals()
और hashCode()
विधियों द्वारा निर्धारित की जाती है।
छंटाई सेट के प्रकार से निर्धारित होती है।
HashSet
- रैंडम सॉर्टिंग
Set<String> set = new HashSet<> ();
set.add("Banana");
set.add("Banana");
set.add("Apple");
set.add("Strawberry");
// Set Elements: ["Strawberry", "Banana", "Apple"]
LinkedHashSet
- सम्मिलन आदेश
Set<String> set = new LinkedHashSet<> ();
set.add("Banana");
set.add("Banana");
set.add("Apple");
set.add("Strawberry");
// Set Elements: ["Banana", "Apple", "Strawberry"]
TreeSet
- द्वारा compareTo()
या Comparator
Set<String> set = new TreeSet<> ();
set.add("Banana");
set.add("Banana");
set.add("Apple");
set.add("Strawberry");
// Set Elements: ["Apple", "Banana", "Strawberry"]
Set<String> set = new TreeSet<> ((string1, string2) -> string2.compareTo(string1));
set.add("Banana");
set.add("Banana");
set.add("Apple");
set.add("Strawberry");
// Set Elements: ["Strawberry", "Banana", "Apple"]
प्रारंभ
एक सेट एक संग्रह है जिसमें डुप्लिकेट तत्व नहीं हो सकते हैं। यह गणितीय सेट अमूर्त मॉडल है।
Set
की तरह विभिन्न कक्षाओं में इसके कार्यान्वयन है HashSet
, TreeSet
, LinkedHashSet
।
उदाहरण के लिए:
HashSet:
Set<T> set = new HashSet<T>();
यहाँ T
String
, Integer
या कोई अन्य ऑब्जेक्ट हो सकता है । HashSet O (1) के त्वरित लुकअप की अनुमति देता है, लेकिन इसमें जोड़े गए डेटा को सॉर्ट नहीं करता है और आइटमों का सम्मिलन क्रम खो देता है।
TreeSet:
यह बुनियादी कार्यों के लिए कुछ गति का त्याग करते हुए डेटा को क्रमबद्ध तरीके से संग्रहीत करता है जो O (lg (n)) लेता है। यह वस्तुओं के सम्मिलन क्रम को बनाए नहीं रखता है।
TreeSet<T> sortedSet = new TreeSet<T>();
LinkedHashSet:
यह HashSet
की एक लिंक्ड लिस्ट कार्यान्वयन है एक बार आइटम को उस क्रम में जोड़ सकते हैं जिस क्रम में उन्हें जोड़ा गया था। इसकी सामग्री के लिए छंटाई प्रदान नहीं की गई है। ओ (1) बुनियादी संचालन प्रदान किए जाते हैं, हालांकि बैकिंग लिंक्ड सूची को बनाए रखने में HashSet
तुलना में अधिक लागत है।
LinkedHashSet<T> linkedhashset = new LinkedHashSet<T>();
सेट की मूल बातें
एक सेट क्या है?
एक सेट एक डेटा संरचना है जिसमें एक महत्वपूर्ण संपत्ति के साथ तत्वों का एक सेट होता है जो सेट में कोई दो तत्व समान नहीं होते हैं।
सेट के प्रकार:
- हैशसेट: हैश टेबल द्वारा समर्थित एक सेट (वास्तव में एक हैशपौट उदाहरण)
- लिंक्ड हैशसेट: एक सेट जो कि हैश टेबल और लिंक्ड लिस्ट से समर्थित है, प्रेडिक्टेबल इटरेन्शन ऑर्डर के साथ
- ट्रीसेट: ट्रीपेज पर आधारित एक नेविगेबल सेटट।
एक सेट बनाना
Set<Integer> set = new HashSet<Integer>(); // Creates an empty Set of Integers
Set<Integer> linkedHashSet = new LinkedHashSet<Integer>(); //Creates a empty Set of Integers, with predictable iteration order
तत्वों को एक सेट में जोड़ना
तत्वों को add()
विधि का उपयोग करके एक सेट में जोड़ा जा सकता है
set.add(12); // - Adds element 12 to the set
set.add(13); // - Adds element 13 to the set
इस पद्धति को निष्पादित करने के बाद हमारा सेट:
set = [12,13]
एक सेट के सभी तत्वों को हटा दें
set.clear(); //Removes all objects from the collection.
इस सेट के बाद होगा:
set = []
जांचें कि कोई तत्व सेट का हिस्सा है या नहीं
सेट contains()
विधि का उपयोग करके सेट में एक तत्व की जांच की जा सकती है
set.contains(0); //Returns true if a specified object is an element within the set.
आउटपुट: False
जांचें कि क्या कोई सेट खाली है
isEmpty()
विधि का उपयोग यह जांचने के लिए किया जा सकता है कि कोई सेट खाली है या नहीं।
set.isEmpty(); //Returns true if the set has no elements
आउटपुट: सच
सेट से एक तत्व निकालें
set.remove(0); // Removes first occurrence of a specified object from the collection
सेट का आकार जांचें
set.size(); //Returns the number of elements in the collection
आउटपुट: 0
मौजूदा सेट से एक सूची बनाएं
एक नई सूची का उपयोग करना
List<String> list = new ArrayList<String>(listOfElements);
List.addAll () विधि का उपयोग करना
Set<String> set = new HashSet<String>();
set.add("foo");
set.add("boo");
List<String> list = new ArrayList<String>();
list.addAll(set);
जावा 8 स्टीम एपीआई का उपयोग करना
List<String> list = set.stream().collect(Collectors.toList());
सेट का उपयोग करके डुप्लिकेट को समाप्त करना
मान लीजिए कि आपके पास एक संग्रह elements
, और आप एक और संग्रह बनाना चाहते हैं जिसमें समान तत्व हों लेकिन सभी डुप्लिकेट को समाप्त कर दिया गया है :
Collection<Type> noDuplicates = new HashSet<Type>(elements);
उदाहरण :
List<String> names = new ArrayList<>(
Arrays.asList("John", "Marco", "Jenny", "Emily", "Jenny", "Emily", "John"));
Set<String> noDuplicates = new HashSet<>(names);
System.out.println("noDuplicates = " + noDuplicates);
आउटपुट :
noDuplicates = [Marco, Emily, John, Jenny]