2010-09-24 3 views
1

Я пишу что-то в java, которое попытается «автозаполнять» то, что пользователь печатает. Я использовал NSPredicate для приложений iPhone для этого. Это было очень легко и хорошо работало. Я надеюсь, что в java есть что-то похожее, но не так много удачи в этом.Есть ли эквивалент java для NSPredicate?

Если что-то еще не существует для этого в java, есть ли у кого-нибудь предложения по наилучшему подходу? Я думаю, возможно, что-то вроде карты с ключом «A», «B», «C», ... и значением является список отсортированных данных, который начинается с соответствующей буквы, чтобы получить более управляемые списки размеров, а затем повторяя этот список, чтобы найти совпадения при вводе каждой буквы.

Любые другие предложения будут оценены.

Thanks

+0

Вы нашли эквивалентную библиотеку в NSPredicate для JAVA? Я столкнулся с той же проблемой прямо сейчас! – Strider007

ответ

1

Вы не предоставили достаточную информацию. Список, против которого вы выполняете автозаполнение (обычно называемый «целевым списком», статическим списком значений? Если да, посмотрите на String.startsWith() и, возможно, интерфейс компаратора для поиска в списке.

Если целевой список является результатом запроса, тогда структурируйте свой запрос для использования частичного соответствия (в oracle у вас будет предложение where «like» xxx% '»xxx, являющееся частичным значением, а% - ядром оракула для"

+0

Это список, полученный из таблицы базы данных, но я хочу, чтобы это было быстро, поэтому я хотел бы чтобы избежать поездок в базу данных и хранить все в памяти. Таблица довольно статична, обновляется только один раз в день, поэтому я бы перезагрузил целевой список в определенное время раз в день. Есть ли способ использовать String.startsWith или интерфейс компаратора без необходимости повторного прохождения по всему списку? – ViniVidiVici

Смежные вопросы