Question

Je voudrais implémenter une classe simple (en Java) qui me permettrait d’enregistrer et de désenregistrer des chaînes, et sur la base de l’ensemble actuel de chaînes, de compléter automatiquement une chaîne donnée. Ainsi, l'interface serait:

  • void add (String)
  • void remove (String)
  • Chaîne terminée (Chaîne)

Quelle est la meilleure façon de procéder en termes d’algorithmes et de structures de données?

Était-ce utile?

La solution

vous devriez envisager d’utiliser un test PATRICIA pour la structure de données. Recherchez "patricia trie" sur google et vous y trouverez de nombreuses informations ...

Autres conseils

La structure de données que vous recherchez est appelée un arbre de recherche ternaire.

Il existe un bon exemple de JavaWorld à l'adresse www.javaworld.com/javaworld/jw-02-2001/jw-0216-ternary.html

Il devrait s'agir d'une sorte de liste que vous pouvez gérer dans un ordre trié. Vous devrez également écrire votre propre algorithme de recherche qui vous donnera l'index du premier élément de la liste qui correspond à votre modèle de recherche. Ensuite, parcourez cet index jusqu'au premier élément qui ne correspond pas et vous obtenez votre liste de complétions possibles.

Je regarderais TreeList de commons-collections. Il comporte une insertion et une suppression rapides au milieu de la liste, ce qui vous permettra de conserver l’ordre trié. Il serait probablement assez facile d'écrire votre fonction de recherche à partir de l'arborescence qui sauvegarde cette liste.

Pour ceux qui tombent sur cette question ...

Je viens de publier une implémentation à remplissage automatique côté serveur sur Google Code. Le projet comprend une bibliothèque java pouvant être intégrée à des applications existantes et un serveur autonome de complétion automatique HTTP AJAX.

J'espère que cela permettra aux utilisateurs d'intégrer une fonction de saisie semi-automatique efficace à leurs applications. Kick les pneus!

J'ai créé un plug-in JQuery appelé Simple saisie semi-automatique, qui vous permet d'ajouter le nombre de complétions automatiques que vous le souhaitez sur la même page, d'ajouter des filtres avec un paramètre supplémentaire et d'exécuter une fonction de rappel pour amener d'autres paramètres, comme l'id de l'élément.

Voir sur http://www.idealmind.com .br / projets / simple-autocomplete-jquery-plugin /

Expressions régulières.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top