The HashMap in HashSet v Javi so najbolj priljubljeni razredi zbirke. Oba se uporabljata za strukturo podatkov. Naslednja tabela opisuje razliko med HashMap in HashSet:
Osnova | HashMap | HashSet |
---|---|---|
Opredelitev | Java HashMap je izvedba vmesnika Map, ki temelji na razpršilni tabeli. | HashSet je Set. Ustvari zbirko, ki za shranjevanje uporablja zgoščeno tabelo. |
Izvedba | HashMap izvaja Preslikava, kloniranje in serializacija vmesnik es. | HashSet izvaja Set, Cloneable, Serializable, Iterable in Zbirka vmesniki. |
Trgovine | V HashMap shranimo a par ključ-vrednost . Ohranja preslikavo ključa in vrednosti. | V HashSet shranjujemo predmetov . |
Podvojene vrednosti | Ne dovoljuje podvojeni ključi , ampak podvojene vrednosti so dovoljeno . | Ne dovoljuje podvojene vrednosti . |
Ničelne vrednosti | Lahko vsebuje a enojni ničelni ključ in več ničelnih vrednosti . | Lahko vsebuje eno samo ničelno vrednost . |
Način vstavljanja | HashMap uporablja daj() metodo za dodajanje elementov v HashMap. | HashSet uporablja dodaj() metoda za dodajanje elementov v HashSet. |
Izvedba | HashMap je hitreje/ kot HashSet, ker so vrednosti povezane z edinstvenim ključem. | HashSet je počasnejši kot HashMap, ker se objekt član uporablja za izračun vrednosti hashcode, ki je lahko enaka za dva predmeta. |
Število predmetov | Samo eno predmet je ustvarjen med operacijo dodajanja. | obstajajo dva predmetov, nastalih med danim obratovanjem, enega za ključ in enega za vrednost . |
Mehanizem za shranjevanje | HashMap interno uporablja zgoščevanje za shranjevanje predmetov. | HashSet interno uporablja a HashMap predmet za shranjevanje predmetov. |
Uporabe | Vedno raje, ko ne vzdržujemo edinstvenost . | Uporablja se, ko moramo vzdrževati edinstvenost podatkov. |
Primer | {a->4, b->9, c->5} Kje a, b, c so ključi in 4, 9, 5 so vrednote povezana s ključem. | {6, 43, 2, 90, 4} Označuje množico. |
Razumejmo razlike skozi programe.
abeceda v številkah
Primer HashMap
V naslednjem primeru, ko dodamo podvojeni element z istim ključem in drugačno vrednostjo, se prejšnja vrednost ključa nadomesti z novo vrednostjo.
Ko dodamo podvojeni element z istim ključem in isto vrednostjo, se par ključ-vrednost ne shrani drugič.
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); } }
Izhod:
Primer HashSet
V naslednjem primeru lahko vidimo, da se podvojene vrednosti ne shranijo v HashSet in da se ničelna vrednost shrani samo enkrat.
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); } }
Izhod: