Ich bin auf der Suche nach einer ständig sortierten Liste in Java, die auch verwendet werden kann, um ein Objekt sehr schnell abzurufen. PriorityQueue funktioniert großartig für die "ständig sortiert" Anforderung, und HashMap funktioniert großartig für die schnelle Abfrage nach Schlüssel, aber ich brauche beide in der gleichen Liste. An einem Punkt hatte ich meine eigene geschrieben, aber es implementiert nicht die Sammlungen Schnittstellen (so kann nicht als Drop-in-Ersatz für eine java.util.List usw. verwendet werden), und ich würde lieber zu Standard-Java-Klassen bleiben, wenn möglich.
Gibt es eine solche Liste? Im Moment verwende ich 2 Listen, eine Prioritäts-Warteschlange und eine Hashmap, beide enthalten die gleichen Objekte. Ich verwende die Prioritäts-Warteschlange, um den ersten Teil der Liste in sortierter Reihenfolge zu durchlaufen, die Hashmap für die schnelle Abfrage nach Schlüssel (ich muss beide Operationen austauschbar tun), aber ich hoffe auf eine elegantere Lösung...
Bearbeiten: Ich sollte hinzufügen, dass ich die Liste durch einen anderen Komparator als das, was für die Abfrage nach Schlüssel verwendet wird, sortiert haben müssen; die Liste wird durch einen langen Wert sortiert, die Schlüsselabfrage ist ein String.