2012-08-14 11 views

Odpowiedz

3

Zestaw jest nieuporządkowany i nie zawiera indeksów dla zawartych w nim elementów. Dlatego metoda binarySearch(), która zwraca indeks elementu, nie ma sensu.

8

Wyszukiwanie binarne oznacza posortowany pojemnik. Zestaw jest nieuporządkowany (HashSet), w którym to przypadku nie można przeprowadzić wyszukiwania binarnego lub jest ono zamawiane (TreeSet), w którym to przypadku jego operacja wyszukiwania jest już tak wydajna jak przeszukiwanie binarne (to jest O(Log2(N))).

4

W takim przypadku wyszukiwanie binarne będzie działać tylko wtedy, gdy lista zostanie uporządkowana i posortowana. tzn. nie działa dla wszystkich list, tylko wstępnie sortowane.

Zestaw nie jest zamówiony i nie można go sortować.

Jeśli zestaw jest sortowana, można zastosować jedną z metod NavigableSet

5

Binary wyszukiwarka działa na uporządkowanego zbioru. Zestaw nie jest zamówiony.

+0

Dziękuję wszystkim za szybką odpowiedź. Zrozumiałem ze wszystkich odpowiedzi, że binarySearch może być używany tylko na zamówione kolekcje. Ale co jeśli chcę użyć do TreeSet? Czy nie powinno to być możliwe? Czy istnieją jakieś alternatywy do wyszukiwania obiektu z zestawu, który jest podobny do wyszukiwania binarnego? –

+0

Możesz przekonwertować swój zestaw na zamówioną kolekcję. –

+1

Można zamówić 'TreeSet', ale nie można odwoływać się do jego elementów przez indeks. –

Powiązane problemy