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
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ö: