Я разрабатываю приложение для игры в android word, которое нуждается в большом (~ 250 000 слов). Мне нужно:
- достаточно быстрый поиск, например. постоянное время предпочтительнее, нужно, может быть, 200 поисковых запросов в секунду, чтобы решить головоломку и, возможно, 20 поисковых запросов в течение 0,2 секунды чаще, чтобы проверять слова, которые только что написаны пользователем.
РЕДАКТИРОВАТЬ: Обычно запросы поиска спрашивают "Есть ли в словаре?". Я также хотел бы поддерживать до двух подстановочных знаков в этом слове, но это достаточно просто, просто создавая все возможные буквы, которые могли бы иметь подстановочные знаки, и проверять сгенерированные слова (например, поиск 26 * 26 слова с двумя подстановочными знаками).
- поскольку это мобильное приложение, использующее как можно меньше памяти и требующее только небольшой начальной загрузки для данных словаря, является главным приоритетом.
Мои первые наивные попытки использовали класс Java HashMap, который вызвал исключение из памяти. Я изучил использование баз данных SQL Lite, доступных на Android, но это похоже на излишний.
Какой хороший способ сделать то, что мне нужно?