logo

Ero HashSet- ja HashMap-luokan välillä Javassa

The HashMap ja HashSet Javassa ovat suosituimmat Collection-luokat. Molempia käytetään tietorakenteessa. Seuraavassa taulukossa kuvataan ero HashMapin ja HashSetin välillä:

Perusta HashMap HashSet
Määritelmä Java HashMap on tiivistetaulukkopohjainen Map-käyttöliittymän toteutus. HashSet on joukko. Se luo kokoelman, joka käyttää hash-taulukkoa varastointiin.
Toteutus HashMap-työkalut Kartta, kloonattava ja sarjoitettava käyttöliittymä es. HashSet-työkalut Sarja, kloonattava, sarjoitettava, iteroitava ja Kokoelma käyttöliittymät.
Kaupat HashMapissa tallennamme a avainarvo-pari . Se ylläpitää avaimen ja arvon kartoitusta. HashSetissä tallennamme esineitä .
Päällekkäiset arvot Se ei salli päällekkäisiä avaimia , mutta päällekkäisiä arvoja ovat sallittu . Se ei salli päällekkäisiä arvoja .
Nolla-arvot Se voi sisältää a yksi tyhjä avain ja useita nolla-arvoja . Se voi sisältää yksi nolla-arvo .
Lisäysmenetelmä HashMap käyttää laittaa() menetelmä elementtien lisäämiseksi HashMapiin. HashSet käyttää lisätä() menetelmä elementtien lisäämiseksi HashSetiin.
Esitys HashMap on nopeammin/ kuin HashSet, koska arvot liittyvät yksilölliseen avaimeen. HashSet on hitaammin kuin HashMap, koska jäsenobjektia käytetään hashcode-arvon laskemiseen, joka voi olla sama kahdelle objektille.
Objektien lukumäärä Vain yksi objekti luodaan lisäystoiminnon aikana. On kaksi put-operaation aikana luodut objektit, yksi varten avain ja yksi varten arvo .
Säilytysmekanismi HashMap käyttää sisäisesti hajautus esineiden säilyttämiseen. HashSet käyttää sisäisesti a HashMap esine tallentaa esineitä.
Käyttää Aina mieluummin kun emme ylläpidä ainutlaatuisuus . Sitä käytetään, kun meidän on ylläpidettävä ainutlaatuisuus tiedoista.
Esimerkki {a->4, b->9, c->5} Missä a, b, c ovat avaimet ja 4, 9, 5 ovat arvot liittyy avaimeen. {6, 43, 2, 90, 4} Se tarkoittaa joukkoa.

Ymmärretään erot ohjelmien avulla.

Esimerkki HashMapista

Kun seuraavassa esimerkissä lisäämme päällekkäisen elementin samalla avaimella ja eri arvolla, avaimen edellinen arvo korvataan uudella arvolla.

Kun lisäämme päällekkäisen elementin samalla avaimella ja samalla arvolla, avain-arvo-pari ei tallenna toista kertaa.

 import java.util.*; public class HashMapExample { public static void main(String args[]) { //creating object of HashMap HashMap hm= new HashMap(); //adding key-value pair hm.put('John', 23); hm.put('Monty', 27 ); hm.put('Richard', 21); hm.put('Devid', 19); System.out.println('Before adding duplicate keys: '); System.out.println(hm); //adding duplicate keys hm.put('Monty', 25); //replace the Monty's previous age hm.put('Devid', 19); System.out.println('After adding duplicate keys: '); System.out.println(hm); } } 

Lähtö:

multiplekseri
Ero HashSet- ja HashMap-luokan välillä Javassa

Esimerkki HashSetistä

Seuraavassa esimerkissä voimme nähdä, että kaksoisarvot eivät tallennu HashSet-arvoon ja nolla-arvo tallennetaan vain kerran.

 import java.util.*; public class HashSetExample { public static void main(String args[]) { //creating object of HashSet HashSet hs= new HashSet(); //adding values to HashSet hs.add('Java'); hs.add('Python'); hs.add('C++'); hs.add('C'); System.out.println('Before adding duplicate and null values: '); System.out.println(hs); //adding duplicate values hs.add('Python'); hs.add('C'); System.out.println('After adding duplicate values: '); System.out.println(hs); //adding null values hs.add(null); hs.add(null); System.out.println('After adding null values: '); System.out.println(hs); } } 

Lähtö:

Ero HashSet- ja HashMap-luokan välillä Javassa