De Hash kaart En HashSet in Java zijn de meest populaire Collection-klassen. Beide worden gebruikt voor de datastructuur. De volgende tabel beschrijft het verschil tussen HashMap en HashSet:
Basis | Hash kaart | HashSet |
---|---|---|
Definitie | Java HashMap is een op hashtabellen gebaseerde implementatie van de Map-interface. | HashSet is een set. Er wordt een verzameling gemaakt die een hashtabel gebruikt voor opslag. |
Implementatie | HashMap implementeert Kaart, kloonbaar en serialiseerbaar interface es. | HashSet-werktuigen Set, kloonbaar, serialiseerbaar, itereerbaar En Verzameling interfaces. |
Winkels | In HashMap slaan we een sleutel-waardepaar . Het onderhoudt de mapping van sleutel en waarde. | In HashSet slaan we op voorwerpen . |
Dubbele waarden | Het staat niet toe dubbele sleutels , Maar dubbele waarden Zijn toegestaan . | Het staat niet toe dubbele waarden . |
Nulwaarden | Het kan een bevatten enkele nulsleutel En meerdere nulwaarden . | Het kan bevatten een enkele nulwaarde . |
Wijze van inbrengen | HashMap maakt gebruik van de neerzetten() methode om de elementen in de HashMap toe te voegen. | HashSet maakt gebruik van de toevoegen() methode om elementen toe te voegen aan de HashSet. |
Prestatie | HashMap is sneller/ dan HashSet omdat waarden aan een unieke sleutel zijn gekoppeld. | HashSet is langzamer dan HashMap omdat het lidobject wordt gebruikt voor het berekenen van de hashcodewaarde, die voor twee objecten hetzelfde kan zijn. |
Het aantal objecten | Alleen een object wordt gemaakt tijdens de toevoegbewerking. | Er zijn twee objecten die zijn gemaakt tijdens de putbewerking, één voor sleutel en één voor waarde . |
Opslagmechanisme | HashMap gebruikt intern hashen voorwerpen op te slaan. | HashSet gebruikt intern een Hash kaart object om objecten op te slaan. |
Toepassingen | Altijd de voorkeur als we de uniciteit . | Het wordt gebruikt wanneer we de uniciteit Van de gegevens. |
Voorbeeld | {a->4, b->9, c->5} Waar a, b, c Zijn sleutels En 4, 9, 5 Zijn waarden geassocieerd met sleutel. | {6, 43, 2, 90, 4} Het duidt een verzameling aan. |
Laten we de verschillen begrijpen via programma's.
Voorbeeld van HashMap
Wanneer we in het volgende voorbeeld een duplicaatelement toevoegen met dezelfde sleutel en een andere waarde, wordt de vorige waarde van de sleutel vervangen door de nieuwe waarde.
Wanneer we een duplicaatelement met dezelfde sleutel en dezelfde waarde toevoegen, wordt het sleutel-waardepaar niet voor de tweede keer opgeslagen.
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); } }
Uitgang:
Voorbeeld van HashSet
In het volgende voorbeeld kunnen we zien dat de dubbele waarden niet in de HashSet worden opgeslagen en dat de nulwaarde slechts één keer wordt opgeslagen.
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); } }
Uitgang: