HashSet- ը Java- ում



Java Java հավաքածու

Ի՞նչ է HashSet- ը Java- ում

HashSet- ը Java- ում դաս է, որն իրականացնում է հավաքածու ինտերֆեյս և պահում է տվյալները հեշթելի մեջ: Այն java.util փաթեթի մի մասն է: Այն օգտագործում է խաշման տեխնիկա ՝ HashSet- ից տարրերը պահելու և հետ բերելու համար: Հեշացման գործընթացում այն ​​օգտագործում է գեներացված hashcode արժեքը ՝ տարրերը պահելու համար անհրաժեշտ ինդեքսում:

Java HashSet- ի առանձնահատկությունները

  • Այն պահպանում է միայն եզակի արժեք, ինչը նշանակում է, որ թույլ չի տալիս կրկնօրինակ արժեքներ:
  • Այն չի պահպանում տեղադրման որևէ պատվեր, քանի որ այն պահում է տվյալները ՝ հիմնվելով hashcode արժեքի վրա:
  • HashSet- ը թույլ է տալիս պահպանել զրոյական արժեքներ:
  • Այն ոչ համաժամացված է:
  • Java HashSet դասը կարող է օգտագործվել որպես որոնման գործողությունների լավագույն տարբերակ, քանի որ դրա կատարումն ավելի արագ է:

HashSet- ի հիերարխիա

HashSet- ը Java- ում

Կոնստրուկտորներ HashSet- ում

շինարարՆկարագրություն
HashSet ()Ստեղծում է լռելյայն HashSet
HashSet (ներ թողունակություն)Ստեղծում է նշված հզորությամբ HashSet
HashSet (ներ թողունակություն, բոցային բեռ գործոն)Ստեղծում է HashSet ՝ նշված հզորությամբ և բեռի գործոնով:
HashSet (հավաքածու գ)Նշված հավաքածուով ստեղծում է HashSet

Մեթոդները HashSet- ում

Ստորեւ բերված են մեթոդներ աջակցվում է Java HashSet դասի կողմից:

ՄեթոդՆկարագրությունՊարամետրեր
բուլյան ավելացնել (օբյեկտ ե)Նշված տարրը լրացնում է հավաքածուի մեջե - ավելացվող տարրը
Վերադառնում է true, եթե տարրն արդեն առկա չէ
Վերադարձնում է կեղծ, եթե տարրն արդեն առկա է
boolean addAll (հավաքածու գ)Նշված հավաքածուի մեջ ավելացնում է բոլոր տարրերըգ - հավաքածու, որը պարունակում է ավելացնելու տարրեր
անվավեր պարզ ()Հեռացնում է հավաքածուի բոլոր տարրերը և հավաքածուն դատարկում
Օբյեկտի կլոն ()Վերադարձնում է TreeSet օրինակի մակերեսային պատճենը
բուլյան պարունակություն (օբյեկտ o)Վերադառնում է true, եթե հավաքածուն պարունակում է նշված տարրըo - որոնման տարրը
բուլյան պարունակություն Բոլորը (հավաքածու գ)Վերադառնում է true, եթե հավաքածուն պարունակում է հավաքածուի մեջ նշված բոլոր տարրերըգ - որոնման հավաքածուի տարրեր
բուլյան հավասար է (օբյեկտ o)Համեմատում է հավաքածուի նշված օբյեկտըԵթե ​​առկա է, ճշմարիտ է վերադառնում
Վերադարձնում է կեղծ, եթե առկա չէ
բուլյան is դատարկ ()Վերադառնում է true, եթե հավաքածուն դատարկ է և չի պարունակում որևէ տարր
Iterator iterator ()Վերադարձիչով վերադառնում է աճման կարգով տարրերի վրա
բուլյան հեռացում (օբյեկտ o)Հեռացնում է նշված տարրը հավաքածուիցo - հեռացվող տարրը
boolean removeAll (հավաքածու c)Հեռացնում է նշված հավաքածուի բոլոր տարրերըգ - հեռացվող տարրերի հավաքածու
boolean retainAll (հավաքածու c)Պահպանում է հավաքածուի նշված հավաքածուի բոլոր տարրերը և հեռացնում հավաքածուի մյուս տարրերըգ - պահպանվող տարրերի հավաքածու
int չափը ()Վերադարձնում է բազմության չափը, որը հավաքածուի տարրերի թիվն է
Spliterator splititer ()Վերադարձնում է բաժանարարը հավաքածուի տարրերի վրա
Օբյեկտ [] toArray ()Վերադարձնում է հավաքածուի տարրերի զանգվածի ներկայացումը
String toString ()Վերադարձնում է հավաքածուի տարրերի լարային ներկայացումը

Օրինակ. Ավելացրեք տարրեր

Ստորև բերված է Java- ի HashSet- ին տարրեր ավելացնելու մի օրինակ `օգտագործելով add() մեթոդ Կարող ենք նաև ավելացնել հավաքածուի տարրերի հավաքածու ՝ օգտագործելով addAll() մեթոդ է.

import java.util.HashSet;

public class AddHashSetElements {

  public static void main(String[] args) {
    HashSet<Integer> hs = new HashSet<Integer>();
    hs.add(30);
    hs.add(10);
    hs.add(20);
    hs.add(40);
    
    System.out.println("Elements in the HashSet after add operation: " + hs);
    
    HashSet<Integer> h = new HashSet<Integer>();
    h.add(60);
    h.add(50);
    
    hs.addAll(h);
    
    System.out.println("ELements in the HashSet after addAll operation: " + hs);
    

  }

}
Elements in the HashSet after add operation: [20, 40, 10, 30]
ELements in the HashSet after addAll operation: [50, 20, 40, 10, 60, 30]

Օրինակ ՝ հեռացնել տարրերը

Ստորև բերված օրինակը ցույց է տալիս, թե ինչպես կարելի է Java- ում HashSet- ից տարրերը հեռացնել, օգտագործելով remove() մեթոդ Էլեմենտների հավաքածուն հեռացնելու համար մենք կարող ենք օգտագործել removeAll() մեթոդը և պահպանել միայն հավաքածուի այն տարրերը, որոնք կարող ենք օգտագործել retainAll() մեթոդ է.

import java.util.HashSet;

public class RemoveHashSetElements {

  public static void main(String[] args) {
    HashSet<Integer> hs = new HashSet<Integer>();
    hs.add(30);
    hs.add(10);
    hs.add(20);
    hs.add(40);
    
    HashSet<Integer> h = new HashSet<Integer>();
    h.add(60);
    h.add(50);
    hs.addAll(h);
    
    System.out.println("Elements in the HashSet: " + hs);
    
    hs.remove(30);
    System.out.println("Elements in the HashSet after remove method: " + hs);
    
    hs.retainAll(h);
    System.out.println("Elements in the HashSet after retainAll method: " + hs);

    hs.removeAll(h);
    System.out.println("Elements in the HashSet after removeAll method: " + hs);

  }

}
Elements in the HashSet: [50, 20, 40, 10, 60, 30]
Elements in the HashSet after remove method: [50, 20, 40, 10, 60]
ELements in the HashSet after retainAll method: [50, 60]
Elements in the HashSet after removeAll method: []

Օրինակ ՝ Մաքրել HashSet- ը և ստուգել ՝ դատարկ է

Մենք կարող ենք մաքրել HashSet- ը ՝ օգտագործելով clear() մեթոդ, որը հեռացնում է բոլոր տարրերը հավաքածուից: Ի isEmpty() մեթոդը ստուգում է ՝ HashSet- ը դատարկ է, թե ոչ:

import java.util.HashSet;

public class RemoveHashSetElements {

  public static void main(String[] args) {
    HashSet<Integer> hs = new HashSet<Integer>();
    hs.add(30);
    hs.add(10);
    hs.add(20);
    hs.add(40);
    
    System.out.println("Elements in the HashSet: " + hs);
    System.out.println("Size of the HashSet: " + hs.size());
    
    hs.clear();
    System.out.println("Is HashSet empty: " + hs.isEmpty());

  }

}
Elements in the HashSet: [20, 40, 10, 30]
Size of the HashSet: 4
Is HashSet empty: true

Օրինակ. Ստուգեք ՝ արդյոք տարրեր գոյություն ունեն

Ստորև բերված օրինակում օգտագործվում է contains() մեթոդ `ստուգելու համար, արդյոք HashSet- ը պարունակում է նշված տարրը: Մենք կարող ենք օգտագործել այն containsAll() մեթոդ `ստուգելու համար, արդյոք հավաքածուն պարունակում է տարրերի հավաքածու:

import java.util.HashSet;
public class CheckElement {

  public static void main(String[] args) {
    HashSet<String> city = new HashSet<String>();
    city.add("Bangalore");
    city.add("Chennai");
    city.add("Delhi");
    city.add("Mumbai");
    
    System.out.println("Elements in the HashSet: " + city);
    System.out.println("Check if Chennai exist: " + city.contains("Chennai"));
    System.out.println("Check if Hyderabad exist: " + city.contains("Hyderabad"));
    
    HashSet<String> c = new HashSet<String>();
    c.add("Hyderabad");
    c.add("Jaipur");
    
    city.addAll(c);
    System.out.println("Elements after addAll method: " + city);
    System.out.println("Check if collection exist: " + city.containsAll(c));
  }

}
Elements in the HashSet: [Delhi, Chennai, Mumbai, Bangalore]
Check if Chennai exist: true
Check if Hyderabad exist: false
Elements after addAll method: [Delhi, Chennai, Jaipur, Mumbai, Hyderabad, Bangalore]
Check if collection exist: true

Օրինակ. Կրկնել HashSet տարրերի վրա

Մենք կարող ենք ջավայի HashSet- ի տարրերի միջով անցնել ՝ օգտագործելով iterator() մեթոդ Ստորև բերված է մի օրինակ, որը նկարագրում է նույնը:

import java.util.HashSet;
import java.util.Iterator;
public class IterateHashSet {

  public static void main(String[] args) {
    HashSet<String> names = new HashSet<String>();
    names.add("Ravi");
    names.add("Rakesh");
    names.add("Suresh");
    names.add("Dinesh");
    
    Iterator<String> it = names.iterator();
    while(it.hasNext())
      System.out.println(it.next());

  }

}
Suresh
Ravi
Dinesh
Rakesh

 

Մանրամասն