Gibt es eine Klasse in Java, die ein Array von Elementen in einer Reihenfolge enthält und für eine schnelle Suche optimiert ist?Hashed und indizierte Liste oder Array?
I.e. Ich muss Elemente sowohl durch numerischen Index (wie in Vector
) und durch Hash (wie in HashMap
) abrufen.
LinkedHashMap entspricht nicht
Ich denke LinkedHashMap
nicht, da es um garantiert nicht trifft, aber nicht erlaubt schnellen Zugriff durch Index (Positionsnummer). Gemäß der Beschreibung muss die gesamte Kette durchquert werden, um eine bestimmte Position zu finden. Dies kann jeder mit Collection
mit Iterator.
EDIT 2
D.h. Die Suche nach Schlüssel und nach Index sollte schnell erfolgen, nicht nur nach Schlüssel.
Ich denke, 'toArray()' Methode wird Scannen Sie die gesamte Sammlung, die den ganzen Punkt sinnlos macht. –
@SuzanCioc tatsächlich. Deshalb sage ich in meiner Antwort, es macht nur Sinn, wenn Ihre Karte selten wechselt und Sie das Array zwischenspeichern können –