खोज…


मूल्यों के साथ एक हैशसेट की घोषणा करना

आप एक नया वर्ग बना सकते हैं जो 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 - रैंडम सॉर्टिंग

जावा एसई 7
Set<String> set = new HashSet<> ();
set.add("Banana");
set.add("Banana");
set.add("Apple");
set.add("Strawberry");

// Set Elements: ["Strawberry", "Banana", "Apple"]

LinkedHashSet - सम्मिलन आदेश

जावा एसई 7
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

जावा एसई 7
Set<String> set = new TreeSet<> ();
set.add("Banana");
set.add("Banana");
set.add("Apple");
set.add("Strawberry");

// Set Elements: ["Apple", "Banana", "Strawberry"]
जावा एसई 7
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>();

सेट की मूल बातें

एक सेट क्या है?

एक सेट एक डेटा संरचना है जिसमें एक महत्वपूर्ण संपत्ति के साथ तत्वों का एक सेट होता है जो सेट में कोई दो तत्व समान नहीं होते हैं।

सेट के प्रकार:

  1. हैशसेट: हैश टेबल द्वारा समर्थित एक सेट (वास्तव में एक हैशपौट उदाहरण)
  2. लिंक्ड हैशसेट: एक सेट जो कि हैश टेबल और लिंक्ड लिस्ट से समर्थित है, प्रेडिक्टेबल इटरेन्शन ऑर्डर के साथ
  3. ट्रीसेट: ट्रीपेज पर आधारित एक नेविगेबल सेटट।

एक सेट बनाना

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]


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow