У меня есть большой набор URL-адресов, и я хочу реализовать автозаполнение. Мне не нравится сложность наивный подход, как она линейна с заданным размером:Как создать простой префиксный индекс в Java?
for(String url: urls) if(url.startsWith(input) {doSomething();}
Теперь я знаю, что в хэш-набор, функция «содержит()» работает в «O (1) «но нет« containsPrefix() ». Есть ли простой способ без использования большой библиотеки, такой как Lucene, или ее кодирования? У меня не было бы проблем с этим, но это кажется излишним для такой простой проблемы, поэтому я хочу знать, существует ли существующее простое решение :-)
Из моих классов компьютерных наук я помню дерево, состоящее из фрагментов строки, но Я забываю, как это называлось. Он работал следующим образом:
[car, care, carrot,carrotville]->
car
|
-/
-e
-rrot
|
----ville
P.S .: Как я могу назвать методы, возвращающие все строки, для которых является префиксом строки? Например, если a является префиксом b, что такое b для a?
Что вы хотите сделать? автоматически добавить текст в начале каждой строки? –
Я хочу знать, какие строки моя строка является префиксом, поэтому я могу дать им варианты автозаполнения. –