Unterschied HashSet & HashMap?

2 Antworten

Der Hauptunterschied ist, wie du auf die Elemente zugreifst, und ob Dupikate erlaubt sind.

Ein (Hash)Set ist eine Menge von Objekten. Du kannst zum Set Elemente einfach hinzufügen - Duplikate sind aber nicht erlaubt. Wenn du elemente haben willst musst du über alle Elemente des Sets iterieren - du kannst (direkt) nicht auf ein bestimmtes zugreifen. Im gegensatz zu einer List (ArrayList z.B.) ist aber keine Reihenfolge der Elemente gegeben / gesichert.

Bei einer (Hash)Map hast du ein dictionary. Du speicherst auch Objekte, aber unter einem Bestimmten Key. Die Keys müssen hierbei einzigartig sein, ein Objekt kann aber (unter verschiedenen Keys) mehrfach vorkommen. Zum zugriff auf Objekte kannst du entweder über alle Einträge / Eintragspaare iterieren, oder direkt das Objekt zu dem entsprechenden Key laden.

Woher ich das weiß:Berufserfahrung – Dipl.-Informatiker mit 10 Jahren Berufserfahrung
Von Experte JanMarcel01 bestätigt

HashSet ist eine Menge von Elementen, die Einzigartig sind.

HashMap ist ein Key-Value-Store. Da packst Du Elemente mit einem Key rein und kannst so schnell auf diese zugreifen.

Das sind schon andere Datenstrukturen und haben auch unterschiedliche Einsatzgebiete.

Gruß

Lealaluuu 
Fragesteller
 06.01.2022, 18:39

Menge von Elementen? Du meinst sowas wie eine ArrayList?

0
AldoradoXYZ  06.01.2022, 18:45
@Lealaluuu

Du kannst alle diesen Datenstruktren ganz allgemein als "Mengen von Elementen" beschreiben.

Sets: Elemente sind einzigartig und nicht doppelt
Listen: Elemente sind nicht einzigartig und können doppelt vorkommen
Map: Key-Value-Store. Hier müssen die Keys eindeutig sein, die Elemente können mehrfach vorkommen
Array: Elemente sind auch hier nicht einzigartig und können doppelt vorkommen.
Vector: Elemente können auch mehrfach vorkommen
Tree: Da gibt es auch x verschiedene mit unterschiedlichen Eigenschaften
etc. etc.

Sind halt Datenstrukturen. Man muss sich überlegen was man braucht und welche Datenstruktur da gut passen würde.

Gruß und viel Spaß

1
Lealaluuu 
Fragesteller
 06.01.2022, 18:48
@AldoradoXYZ

Vielen Dank für die ausführliche Beschreibung. Hat mir weiter geholfen:)

0
AldoradoXYZ  06.01.2022, 18:49
@Lealaluuu

Beim Wort "Menge" musst Du in Prüfungen übrigens aufpassen.

Besser sagt man vielleicht "Sammlungen von Elementen".

Der Begriff Menge ist in der Mathematik recht eindeutig definiert und da gibt es per se keine doppelten Elemente. Nicht, dass wer meckert, dass Du Menge bei einer Liste geschrieben hast.

Gruß

1
Lealaluuu 
Fragesteller
 06.01.2022, 18:55
@AldoradoXYZ

Ja ist mir auch aufgefallen. Mein Dozent beschreibt bei den Aufgabenstellungen solche Aufgabentypen auch immer mit: "...verwenden Sie dabei eine passende "Sammlung von Elementen", um Ihren Code zu strukturieren." Danke für den Hinweis trotzdem:)

0