2012-08-14 5 views

Antwort

3

Eine Gruppe ist ungeordnet und enthält keine Indizes für die enthaltenen Elemente. Daher ist eine binarySearch() -Methode, die den Index des Elements zurückgibt, nicht sinnvoll.

8

Binäre Suche impliziert einen sortierten Container. Ein Satz ist entweder ungeordnet (HashSet), in welchem ​​Fall eine binäre Suche nicht durchgeführt werden kann, oder er ist geordnet (TreeSet), in welchem ​​Fall seine Nachschlageoperation bereits so effizient ist wie eine binäre Suche (d. H. O(Log2(N))).

4

In diesem Fall funktioniert eine binäre Suche nur, wenn die Liste geordnet und sortiert ist. Das heißt, es funktioniert nicht für alle Listen, nur die vorsortierten.

Ein Set ist nicht geordnet und möglicherweise nicht sortiert.

Wenn das Set sortiert ist, können Sie eine der Methoden von NavigableSet verwenden

5

Binary Suche auf geordnete Sammlung funktioniert. Set sind nicht bestellt.

+0

Vielen Dank für die schnelle Antwort. Ich habe aus allen Antworten verstanden, dass binarySearch nur für geordnete Sammlungen verwendet werden kann. Aber was, wenn ich für TreeSet verwenden möchte? Sollte es nicht möglich sein? Gibt es Alternativen, um ein Objekt aus dem Set zu suchen, das der binären Suche ähnlich ist? –

+0

Sie können Ihr Set in eine geordnete Sammlung umwandeln. –

+1

Ein 'TreeSet' kann bestellt werden, aber Sie können nicht auf seine Elemente durch einen Index verweisen. –

Verwandte Themen