20 Stimmen

Gibt es eine indizierbare sortierte Liste im Java.util-Paket?

Ich bin auf der Suche nach einer Datenstruktur aus dem java.util-Paket. Ich brauche es, um die folgenden Anforderungen zu erfüllen:

  • Die Anzahl der Elemente ist (theoretisch) unbegrenzt.
  • Die Elemente werden in aufsteigender Reihenfolge sortiert.
  • Sie können das n-te Element (schnell) erhalten.
  • Sie können das n-te Element (schnell) entfernen.

Ich hatte erwartet, eine indizierbare Auslassungsliste zu finden, aber das war nicht der Fall. Gibt es eine Datenstruktur, die die von mir genannten Anforderungen erfüllt?

0voto

Merky Punkte 496

Ich schließe mich dem an, was dwb mit List<T> y Collections.sort() können Sie verwenden ArrayList<T> denn das implementiert List<T> (und ist nicht synchronisiert wie Vector<T> es sei denn, Sie möchten diesen Aufwand haben). Das ist wahrscheinlich die beste Lösung, weil sie (Sun) in der Regel viel Forschung in diesen Bereichen betreiben (jedenfalls soweit ich weiß). Wenn Sie nach etwas anderem als dem "Standard" sortieren müssen (d.h. Sie sortieren nicht eine Liste von Ganzzahlen usw.), dann liefern Sie Ihren eigenen Komparator.

EDIT: Das einzige, was nicht Ihren Anforderungen entspricht, sind die schnellen Umzüge...

-1voto

Roman Punkte 61632

Blick auf PriorityQueue .

Wenn Sie keine ähnlichen Elemente in Ihrer Datenstruktur benötigen, dann passt das übliche TreeSet auch zu Ihren Anforderungen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X