Frage zu HashSet
-
Hallo. Ich habe ein Hashset und füge dort Elemente ein.
Nun meine Frage wenn ich die Elemente wieder auslse (dort einen Iterator) sind die elemente dann in der gleichen Reihenfolge wie beim Einfügen oder in einer zufälligen Reihenfolge.
Ich möchte das die Elemente genau in der Reihenfolge in der hasSet stehen wie ich sie auch einfüge, oder ist da besser ein Vector geeignet?
Vielen Dank
-
Deine Kandidaten sind ArrayList oder ArrayDeque(mit dem Interface eines Queue)
-
Set dient dem schnellen Finden von Elementen, oder dem schnellen Ermitteln, ob das Element schon vorhanden ist. HashSet und TreeSet Iteratoren iterieren damit über die "natürliche" Reihenfolge der Ablage. HashSet also eher zufällig, TreeSet aufsteigend sortiert (nach Comparable<>).
LinkedHashSet wäre eine Implementierung, die garantiert, dass die Elemente in der Einfügereihenfolge iteriert werden können.
Aber wenn Du schon fragst, ob ein Set oder ein Vector besser geeignet sind, liegt die Vermutung nahe, dass Du vielleicht garkein Set brauchst. Welche konkreten Anforderungen (außer einer garantierten Reihenfolge) hast Du denn an den Conatainer?
-
Die reihenfolge ist das wichtigste