Возврат элемента из TreeSet с использованием двоичного поиска

В TreeSet есть метод с именем contains, который возвращает истину, если элемент находится в наборе. Я предполагаю, что этот метод использует двоичный поиск и не выполняет итерацию по всем элементам в порядке возрастания. Я прав?

У меня есть TreeSet, содержащий объекты класса, который использует две переменные экземпляра String, чтобы отличать его от других объектов того же класса. Я хочу иметь возможность создать метод, который выполняет поиск в TreeSet, сравнивая объекты двух переменных экземпляра (конечно, используя методы get) с двумя другими переменными String, и, если они равны, возвращать элемент. Если переменные экземпляра меньше, чем переход к первому элементу в правом поддереве, или если они больше, поиск в левом поддереве и т. Д. Есть ли способ сделать это?

Я знаю, что могу просто сохранить объекты в ArrayList и используйте двоичный поиск, чтобы найти объект, но это будет не так быстро, как простой поиск в TreeSet.

8
задан exent 5 April 2011 в 21:20
поделиться