Mam duży zestaw adresów URL i chcę zaimplementować autouzupełnianie. Nie lubię złożoność naiwnego podejścia, jak to jest liniowy z wielkością zestawie:Jak utworzyć prosty indeks prefiksu w Javie?
for(String url: urls) if(url.startsWith(input) {doSomething();}
Teraz wiem, że w Hash, funkcja „zawiera()” prace w „O (1) "ale nie ma" zawieraPrefix() ". Czy istnieje prosty sposób bez użycia dużej biblioteki, takiej jak Lucene, czy też samodzielnego kodowania? Nie miałbym problemu z tym, ale wydaje się, że jest to zbyt prosty problem, więc chcę wiedzieć, czy istnieje proste rozwiązanie :-)
Z moich zajęć informatycznych pamiętam drzewo, które składa się z fragmentów smyczków, ale Zapominam, jak to się nazywało. To działało tak:
[car, care, carrot,carrotville]->
car
|
-/
-e
-rrot
|
----ville
P.S .: Jak wywołać metody, które zwracają wszystkie ciągi, których ciąg jest przedrostkiem? Podobnie jak w przypadku przedrostka b, jaki jest b do a?
co chcesz zrobić? automatycznie dodajesz jakiś tekst na początku każdego ciągu? –
Chcę wiedzieć, które ciągi znaków są przedrostkiem, więc mogę je podać jako podpowiedzi autouzupełniania. –