Как реализовать простую функцию автозаполнения?

StackOverflow https://stackoverflow.com/questions/73095

  •  09-06-2019
  •  | 
  •  

Вопрос

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

  • void добавить (Строка)
  • void удалить (Строка)
  • Строка завершена(String)

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

Это было полезно?

Решение

вам следует подумать о том, чтобы использовать PATRICIA trie для структуры данных.Найдите "патриция три" в Google, и вы найдете много информации...

Другие советы

Структура данных, которая вам нужна, называется троичным деревом поиска.

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

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

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

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

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

Я надеюсь, что это позволит людям внедрять эффективное автозаполнение в свои приложения.Бей по шинам!

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

Смотрите это по адресу http://www.idealmind.com.br/projetos/simple-autocomplete-jquery-plugin/

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top