文字列の登録と登録解除を可能にするシンプルなクラス(Java)を実装したいと思います。現在の文字列セットに基づいて、指定された文字列を自動完成します。だから、インターフェースは次のようになります。シンプルな自動補完機能を実装するにはどうすればよいですか?
- ボイドが追加(文字列)
- 無効のremove(String)を
- 完全な文字列(String)を
の面でこれを行うための最善の方法は何アルゴリズムとデータ構造?
文字列の登録と登録解除を可能にするシンプルなクラス(Java)を実装したいと思います。現在の文字列セットに基づいて、指定された文字列を自動完成します。だから、インターフェースは次のようになります。シンプルな自動補完機能を実装するにはどうすればよいですか?
の面でこれを行うための最善の方法は何アルゴリズムとデータ構造?
正規表現。
ソートされた順序で維持できる何らかの種類のリストでなければなりません。また、リスト内の検索パターンに一致する最初の要素のインデックスを与える独自の検索アルゴリズムを作成する必要があります。次に、そのインデックスから、一致しない最初の要素まで繰り返し、可能な補完のリストを取得します。
私はコモンズコレクションからTreeListを見ています。並べ替えの順序を維持するために、リストの途中から挿入や削除を高速に実行できます。おそらく、そのリストを裏付けるツリーから検索機能を書くのはかなり簡単でしょう。
あなたの後にあるデータ構造は、ターナリ検索ツリーと呼ばれます。
あなたがデータ構造のためのパトリシア・トライを使用することを検討すべきであるwww.javaworld.com/javaworld/jw-02-2001/jw-0216-ternary.html
...
私はGoogle Codeの上server-side autocomplete implementationを掲載。このプロジェクトには、既存のアプリケーションとスタンドアロンのHTTP AJAXオートコンプリート・サーバーに統合できるJavaライブラリが含まれています。
私の希望は、効率的なオートコンプリートをアプリケーションに組み込むことができるということです。タイヤをキック!
シンプルオートコンプリートと呼ばれるJQueryプラグインを作成して、同じページに多くのオートコンプリートを追加したり、余分なparamでフィルタを追加したり、コールバック関数を実行してidアイテムの
http://www.idealmind.com.br/projetos/simple-autocomplete-jquery-plugin/
complete()が曖昧な場合はどうなりますか? – maccullt
complete()は、あいまいさが始まる(つまり、登録された文字列を返しませんが、一部の登録された文字列の共通接頭辞を返す)という意味では曖昧ではありません。登録された文字列のリストを返す方法もあります。 – Kaarel