Der Rückkehr ein element aus einem TreeSet mit binärer Suche

In TreeSet gibt es eine Methode namens enthält, die true zurückgibt, wenn ein element in der Menge. Ich gehe davon aus, dass diese Methode verwendet binäre Suche und nicht die Iteration über alle Elemente in aufsteigender Reihenfolge. Bin ich im Recht?

Ich habe ein TreeSet mit Objekten einer Klasse verwendet zwei String-Instanz-Variablen zur Unterscheidung von anderen Objekten der gleichen Klasse. Ich möchte in der Lage sein, um eine Methode zu erstellen, dass die Suche nach dem TreeSet durch den Vergleich der Objekte zwei Instanzvariablen (mit get-Methoden natürlich) mit zwei anderen String-Variablen, und wenn Sie gleich sind, das element zurückgegeben werden. Wenn die Instanz-Variablen sind weniger als gehen auf das erste element im rechten Teilbaum oder wenn Sie größer sind, Suche im linken Teilbaum etc. Gibt es eine Möglichkeit, dies zu tun?

Ich weiß, ich könnte nur speichern der Objekte in einer ArrayList, und verwenden Sie die binäre Suche auf das Objekt, aber das wäre nicht so schnell, wie nur die Suche im TreeSet.

  • Wie wissen Sie, binäre Suche in einem ArrayList nicht so schnell? Haben Sie versucht,?
  • Ich meine der übergabe der Elemente aus dem TreeSet zu einer neuen ArrayList jedes mal muss ich auf die Suche nach einem element und gibt es zurück ist langsam.
  • ah, ja, das wäre auf jeden Fall sehr langsam. Aber wenn Sie zuerst bauen die setzen, dann suchen Sie es mehrere Male, dann Sortieren und Binär suchen eine ArrayList es könnte sich herausstellen, Recht schnell.
  • Was ist, wenn eine Instanz-variable ist größer als sein Gegenstück, und der andere ist weniger als sein Gegenstück? Wie soll das Sortieren?
  • Manaster: Die Objekte sortiert sind zunächst durch eine der Zeichenketten und dann die andere. Ebenso wie eine Liste der Namen würde zuerst einmal geordnet werden, auf den Nachnamen und dann den Vornamen.
InformationsquelleAutor exent | 2011-04-05
Schreibe einen Kommentar