Java HashSet -luokkaa käytetään luomaan kokoelma, joka käyttää hash-taulukkoa varastointiin. Se perii AbstractSet-luokan ja toteuttaa Set-rajapinnan.
Tärkeitä kohtia Java HashSet -luokasta ovat:
np missä
- HashSet tallentaa elementit käyttämällä mekanismia nimeltä hajautus.
- HashSet sisältää vain ainutlaatuisia elementtejä.
- HashSet sallii nolla-arvon.
- HashSet-luokkaa ei ole synkronoitu.
- HashSet ei ylläpidä lisäysjärjestystä. Täällä elementit lisätään niiden hash-koodin perusteella.
- HashSet on paras tapa hakutoimintoihin.
- HashSetin alkuperäinen oletuskapasiteetti on 16 ja kuormituskerroin 0,75.
Ero luettelon ja joukon välillä
Luettelo voi sisältää päällekkäisiä elementtejä, kun taas joukko sisältää vain yksilöllisiä elementtejä.
HashSet-luokan hierarkia
HashSet-luokka laajentaa AbstractSet-luokkaa, joka toteuttaa Set-rajapinnan. Set-käyttöliittymä perii Collection- ja Iterable-rajapinnat hierarkkisessa järjestyksessä.
HashSet-luokkailmoitus
Katsotaanpa luokan java.util.HashSet ilmoitus.
java bool merkkijonoon
public class HashSet extends AbstractSet implements Set, Cloneable, Serializable
Java HashSet -luokan rakentajat
SN | Rakentaja | Kuvaus |
---|---|---|
1) | HashSet() | Sitä käytetään oletusarvoisen HashSetin luomiseen. |
2) | HashSet (sisäinen kapasiteetti) | Sitä käytetään alustamaan tiivistejoukon kapasiteetti annettuun kokonaislukuarvon kapasiteettiin. Kapasiteetti kasvaa automaattisesti, kun elementtejä lisätään HashSetiin. |
3) | HashSet (sisäinen kapasiteetti, float loadFactor) | Sitä käytetään alustamaan tiivistejoukon kapasiteetti annettuun kokonaislukuarvoon ja määritettyyn kuormituskerrokseen. |
4) | HashSet(kokoelma c) | Sitä käytetään hajautusjoukon alustamiseen käyttämällä kokoelman c elementtejä. |
Java HashSet -luokan menetelmät
Java HashSet -luokan erilaiset menetelmät ovat seuraavat:
SN | Muokkaus ja tyyppi | Menetelmä | Kuvaus |
---|---|---|---|
1) | boolean | lisää (E e) | Sitä käytetään lisäämään määritetty elementti tähän joukkoon, jos sitä ei vielä ole. |
2) | mitätön | asia selvä() | Sitä käytetään kaikkien elementtien poistamiseen sarjasta. |
3) | esine | klooni() | Sitä käytetään palauttamaan matala kopio tästä HashSet-esiintymästä: itse elementtejä ei kloonata. |
4) | boolean | sisältää (objekti o) | Sitä käytetään palauttamaan tosi, jos tämä joukko sisältää määritetyn elementin. |
5) | boolean | on tyhjä() | Sitä käytetään palauttamaan tosi, jos tämä joukko ei sisällä elementtejä. |
6) | Iteraattori | iteraattori() | Sitä käytetään palauttamaan iteraattori tämän joukon elementtien päälle. |
7) | boolean | poista (objekti o) | Sitä käytetään määritetyn elementin poistamiseen tästä joukosta, jos se on olemassa. |
8) | int | koko() | Sitä käytetään palauttamaan joukon elementtien lukumäärä. |
9) | Jakaja | splitter() | Sitä käytetään luomaan myöhään sitova ja nopea jakaja joukon elementtien päälle. |
Java HashSet -esimerkki
Katsotaanpa yksinkertainen esimerkki HashSetistä. Huomaa, että elementit toistuvat järjestämättömässä kokoelmassa.
import java.util.*; class HashSet1{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); set.add('Four'); set.add('Five'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Five One Four Two Three
Java HashSet -esimerkki, jossa ei huomioida päällekkäisiä elementtejä
Tässä esimerkissä näemme, että HashSet ei salli päällekkäisiä elementtejä.
import java.util.*; class HashSet2{ public static void main(String args[]){ //Creating HashSet and adding elements HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Ravi'); set.add('Ajay'); //Traversing elements Iterator itr=set.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
Ajay Vijay Ravi
Java HashSet -esimerkki elementtien poistamiseksi
Tässä näemme erilaisia tapoja poistaa elementti.
import java.util.*; class HashSet3{ public static void main(String args[]){ HashSet set=new HashSet(); set.add('Ravi'); set.add('Vijay'); set.add('Arun'); set.add('Sumit'); System.out.println('An initial list of elements: '+set); //Removing specific element from HashSet set.remove('Ravi'); System.out.println('After invoking remove(object) method: '+set); HashSet set1=new HashSet(); set1.add('Ajay'); set1.add('Gaurav'); set.addAll(set1); System.out.println('Updated List: '+set); //Removing all the new elements from HashSet set.removeAll(set1); System.out.println('After invoking removeAll() method: '+set); //Removing elements on the basis of specified condition set.removeIf(str->str.contains('Vijay')); System.out.println('After invoking removeIf() method: '+set); //Removing all the elements available in the set set.clear(); System.out.println('After invoking clear() method: '+set); } }
An initial list of elements: [Vijay, Ravi, Arun, Sumit] After invoking remove(object) method: [Vijay, Arun, Sumit] Updated List: [Vijay, Arun, Gaurav, Sumit, Ajay] After invoking removeAll() method: [Vijay, Arun, Sumit] After invoking removeIf() method: [Arun, Sumit] After invoking clear() method: []
Java HashSet toisesta kokoelmasta
import java.util.*; class HashSet4{ public static void main(String args[]){ ArrayList list=new ArrayList(); list.add('Ravi'); list.add('Vijay'); list.add('Ajay'); HashSet set=new HashSet(list); set.add('Gaurav'); Iterator i=set.iterator(); while(i.hasNext()) { System.out.println(i.next()); } } }
Vijay Ravi Gaurav Ajay
Java HashSet Esimerkki: Kirja
Katsotaanpa HashSet-esimerkkiä, jossa lisäämme kirjoja sarjaan ja tulostamme kaikki kirjat.
base64 javascriptin purku
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class HashSetExample { public static void main(String[] args) { HashSet set=new HashSet(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to HashSet set.add(b1); set.add(b2); set.add(b3); //Traversing HashSet for(Book b:set){ System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }
Lähtö:
101 Let us C Yashwant Kanetkar BPB 8 102 Data Communications & Networking Forouzan Mc Graw Hill 4 103 Operating System Galvin Wiley 6
Saatat pitää myös:
HashSetin toiminta Javassa