Frage

Ich möchte eine einfache Klasse implementieren (in Java), die mir erlauben würde, Strings zu registrieren und deregistrieren, und auf der Grundlage des aktuellen Satzes von Saiten automatische Vervollständigung einer bestimmten Zeichenfolge. So würde die Schnittstelle sein:

  • void add (String)
  • void remove (String)
  • String komplett (String)

Was ist der beste Weg, dies in Form von Algorithmen und Datenstrukturen zu tun?

War es hilfreich?

Lösung

Sie sollten erwägen, eine PATRICIA-Trie für die Datenstruktur zu verwenden. Suche nach ‚patricia Trie‘ auf Google und Sie werden eine Menge Informationen ...

finden

Andere Tipps

Die Datenstruktur sind Sie nach einem Ternary Search Baum aufgerufen wird.

Es gibt ein großes Javaworld Beispiel bei www.javaworld.com/javaworld/jw-02-2001/jw-0216-ternary.html

Es müßte eine Art von Liste sein, die Sie in sortierter Reihenfolge beibehalten können. Sie müssten auch Ihre eigenen Suchalgorithmus schreiben, dass Sie den Index des ersten Elements in der Liste geben würde, die Ihre Suchmuster übereinstimmt. Dann iterieren aus diesem Index, bis das erste Element, das nicht passt, und Sie haben Ihre Liste der möglichen Vervollständigungen.

Ich würde Blick auf TreeList von commons-Sammlungen. Es hat schnell einfügen und entfernen mal aus der Mitte der Liste, die Sie wollen, um werden sortierter Reihenfolge zu halten. Es wäre wahrscheinlich ziemlich einfach Ihre Suchfunktion abschreiben der Baum, der diese Liste unterstützt.

Für diejenigen, die auf diese Frage stolpern ...

Ich habe gerade gebucht einen serverseitige Implementierung der automatischen Vervollständigung auf Google Code. Das Projekt umfasst eine Java-Bibliothek, die in bestehende Anwendungen und einem eigenständigen HTTP AJAX Autocomplete-Server integriert werden kann.

Meine Hoffnung ist, dass die Menschen ermöglicht eine effiziente die automatische Vervollständigung in ihre Anwendungen zu integrieren. Tritt die Reifen!

Ich habe eine jQuery-Plugin namens Einfaches Auto-Vervollständigen erstellt, die Sie viele der automatische Vervollständigung hinzufügen kann, wie Sie auf der gleichen Seite mögen, und Filter mit zusätzlichen param hinzuzufügen, und eine Rückruffunktion ausführen andere params zu bringen, wie die id das Element.

Sehen Sie es unter http://www.idealmind.com .br / Projetos / simple-Autocomplete-jquery-Plugin /

Reguläre Ausdrücke.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top