Wann benutz ich was: ArrayList, HashMap, HashSet?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Eine Liste (ArrayList, LinkedList) ist nicht unbedingt sortiert, sondern die Elemente habe eine Reihenfolge, die sich aus dem Einfügen ergibt. Bei einer Liste können gleiche Elemente auch mehrfach vorkommen. Auf die einzelnen Elemente kann man über einen numerischen Index (von 0 bis size()-1) zugreifen.

Bei einem Set (HashSet, TreeSet, deutsch: Menge) hat man nur die Information, ob ein Element enthalten ist oder nicht, es steht nicht an einer bestimmten Stelle (zumindest ist diese Information nicht von außen zugreifbar).

Maps (HashMap, TreeMap) heißen in anderen Programmiersprachen Dictionary (Wörterbuch). Da kann man auf einzelne Werte über einen ey (Schlüssel) zugreifen, der nicht unbedingt numerisch sein muss. Zu jedem Key gibt es genau einen Wert.

Na ja die Unterschiede sind ja prägnant.

Als Praxisbeispiel: In einem Onlineshop möchte ich bestimmte Werte der View zur Verfügung stellen, die ich mit Hilfe einer HashMap zur Verfügung stelle. In einer JSP kann ich nun mit dem Key den benötigten Wert abrufen. Die Keys könnten statische Konstanten sein.

Oder ein Beispiel für eine List: Ich lade Daten aus der Datenbank (die haben auch eine bestimmte Reihenfolge die ich mit der order by Klausel festlege). Diese Daten speichere ich in eine List. Auf die Daten muss ich ja sehr wahrscheinlich nicht mit einem Key zugreifen.

Nimm das, was am besten passt. Wie du schon erkannt hast, hat die HashMap einen Key, wenn du aber keinen hast dann nimm die Liste (die nicht sortiert ist so weit ich weiss), usw. Gibt zig Datenstrukturen die du nutzen kannst, Frage ist halt, welche die sinnvollste ist. Das kann ich dir aber nicht sagen, weil ich kA hab was du vor hast.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium