2008-09-16 11 views
3

Я хотел бы реализовать простой класс (на Java), который позволит мне регистрировать и отменять регистрацию строк, а на основе текущего набора строк автоматически заполнять заданную строку. Таким образом, интерфейс будет:Как реализовать простую функцию автозаполнения?

  • недействительными добавить (String)
  • недействительным удалить (String)
  • Строка полная (String)

Что лучший способ сделать это с точки зрения алгоритмов и структур данных?

+0

, что если полная() неоднозначен? – maccullt 2008-09-16 15:20:22

+0

complete() однозначен в том смысле, что он завершится только до того момента, когда начнется двусмысленность (т. Е. Он не вернет зарегистрированную строку, а будет общим префиксом некоторых зарегистрированных строк). Может быть другой метод, хотя бы вернул список зарегистрированных строк. – Kaarel 2008-09-16 15:30:15

ответ

4

следует рассмотреть использование Patricia синтаксического дерева для структуры данных. Поиск «Patricia» на синтаксическое дерево Google, и вы найдете много информации ...

-2

Регулярные выражения.

0

Это должен быть какой-то Список, который можно сохранить в отсортированном порядке. Вам также придется написать собственный алгоритм поиска, который даст вам индекс первого элемента в списке, который соответствует вашему шаблону поиска. Затем перейдите от этого индекса до первого элемента, который не соответствует, и у вас есть список возможных завершений.

Я бы посмотрел TreeList из коллекций коллекций. Он имеет быструю вставку и время удаления из середины списка, которое вы хотите, чтобы сохранить отсортированный порядок. Вероятно, довольно легко написать функцию поиска с дерева, которое поддерживает этот список.

3

Структура данных, которую вы используете, называется тройным поисковым деревом.

Там отличный пример JavaWorld на www.javaworld.com/javaworld/jw-02-2001/jw-0216-ternary.html

0

Для тех, кто наткнуться на этот вопрос ...

Я просто разместил server-side autocomplete implementation на Google Code. Проект включает библиотеку java, которая может быть интегрирована в существующие приложения и автономный сервер автозаполнения HTTP AJAX.

Моя надежда заключается в том, что люди могут включать эффективные автозаполнения в свои приложения. Удар шин!

0

Я создал плагин JQuery под названием Simple AutoComplete, который позволяет вам добавить много автозаполнения, как вы хотите, на одну страницу, а также добавить фильтры с дополнительным параметром и выполнить функцию обратного вызова для приведения других параметров, таких как идентификатор предмета.

Посмотри на http://www.idealmind.com.br/projetos/simple-autocomplete-jquery-plugin/

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

  • Нет связанных вопросов^_^