Verschil tussen HashSet en HashMap

In dit artikel bespreken we de verschillen tussen de klassen HashSet en HashMap.

HashSet vs HashMap

Verschillen:

HashSet HashMap
HashSet klasse implementeert de Set interface HashMap klasse implementeert de Map interface
In HashSet slaan we objecten op (elementen of waarden) vb.b. Als we een HashSet hebben van string-elementen, dan zou het een set van HashSet-elementen kunnen voorstellen: {“Hello”, “Hi”, “Bye”, “Run”} HashMap wordt gebruikt voor het opslaan van sleutel & waardeparen. In het kort houdt het de mapping van sleutel & waarde bij (De HashMap klasse is ruwweg equivalent aan Hashtable, behalve dat het niet gesynchroniseerd is en nulls toestaat). Dit is hoe je HashMap elementen zou kunnen weergeven als het een integer sleutel heeft en een waarde van het type String: bijv. {1->”Hello”, 2->”Hi”, 3->”Bye”, 4->”Run”}
HashSet staat geen dubbele elementen toe, wat betekent dat je geen dubbele waarden in HashSet kunt opslaan. HashMap staat geen dubbele sleutels toe, maar staat wel toe om dubbele waarden te hebben.
HashSet staat een enkele nulwaarde toe. HashMap staat een enkele nulsleutel en een willekeurig aantal nulwaarden toe.

Gelijkenissen:
1) Zowel HashMap als HashSet zijn niet gesynchroniseerd, wat betekent dat ze niet geschikt zijn voor thread-veilige bewerkingen, tenzij ze expliciet worden gesynchroniseerd. Dit is hoe u ze expliciet kunt synchroniseren:
HashSet:

Set s = Collections.synchronizedSet(new HashSet(...));

HashMap:

 Map m = Collections.synchronizedMap(new HashMap(...));

2) Beide klassen garanderen niet dat de volgorde van hun elementen constant blijft in de tijd.

3) Als u de broncode van HashSet bekijkt, kunt u zien dat deze wordt ondersteund door een HashMap. Dus in feite maakt het intern gebruik van een HashMap voor al zijn bewerkingen.

4) Ze bieden beide een constante tijdprestatie voor basisbewerkingen zoals het toevoegen en verwijderen van elementen enz.

HashSet voorbeeld

import java.util.HashSet;class HashSetDemo{ public static void main(String args) { // Create a HashSet HashSet<String> hset = new HashSet<String>(); //add elements to HashSet hset.add("AA"); hset.add("BB"); hset.add("CC"); hset.add("DD"); // Displaying HashSet elements System.out.println("HashSet contains: "); for(String temp : hset){ System.out.println(temp); } }}

Output:

HashSet contains: AABBCCDD

HashMap voorbeeld

import java.util.HashMap;class HashMapDemo{ public static void main(String args) { // Create a HashMap HashMap<Integer, String> hmap = new HashMap<Integer, String>(); //add elements to HashMap hmap.put(1, "AA"); hmap.put(2, "BB"); hmap.put(3, "CC"); hmap.put(4, "DD"); // Displaying HashMap elements System.out.println("HashMap contains: "+hmap); }}

Output:

HashMap contains: {1=AA, 2=BB, 3=CC, 4=DD}

Leave a Reply