В моем приложении для Android я хочу иметь поле ввода с автозаполнением. Количество элементов будет около 300000. Лучшее решение, кажется, состоит в том, чтобы поместить элементы в файл (на SD-карте), по одному элементу в строке, каждая строка будет иметь одинаковое количество символов, чтобы я мог искать конкретный номер строки. , Если пользователь вводит что-то в текстовое поле, я выполняю бинарный поиск (через RandomAccessFile) файла и показываю предложения.
Я хочу, чтобы автозаполнение было очень быстрым (в идеале, до 100 мс, но я думаю, что это невозможно), какие оптимизации я могу сделать?
Обновление 1:
Я преобразую вводимые пользователем символы в строчные английские символы (a-z) с пробелами. Таким образом, «A / B» будет преобразовано в «A B», а затем искать.
Uodate 2:
Теперь я понял, что мне нужна дополнительная вещь - для поиска подстрок, начинающих слова.