В настоящее время у меня есть массив строк, который мне нужно найти много раз для точного соответствия. Какая будет лучшая структура данных?Быстрый поиск Java
Example - String array with elements
cat
dog
squirrel
raccoon
aardvark
код Java получает поиск строк и перебирает массив:
- запрос для 'Dogg' - ничего не возвращает
- запроса для 'енота' - возвращает енот
Мой текущий код делает следующее:
for (String element : myList) {
if (element.equals(searchTerm)) {
return searchTerm;
}
}
Есть ли более эффективный способ для этого поиска? Я думал об использовании Карты, но я не мог придумать хорошую ценность (ключ был бы «собака»/«кошка»/etc ....). Должен ли я использовать одно и то же значение для ключа и значения? Есть ли лучшая структура данных для использования?
с синтаксического дерева, вы должны использовать http://en.wikipedia.org/wiki/Trie – nachokk
@nachokk Joda, это ты? –
@nachokk http://en.wikipedia.org/wiki/Yoda – GriffeyDog