文字列補完の実装準備(メモ)
トライによる文字列補完は容易に実現できるのですが,どうしてもインタフェースが複雑になってしまうので悩み中です.
すべての候補をまとめて受け取るようなインタフェースであれば簡単なのですが,候補を一つずつ受け取るには,どうしても補完の進捗を保存する必要があり,辞書クラスの他にも補完用のクラスが必要になってしまいます.正確には,通常検索用の辞書クラスに,補完用の辞書クラスと補完の進捗を格納するクラスを併せて 3 つです.
- 例えば,こんな感じ
- Dictionary: 通常検索用の辞書
- CompletionDictionary: 補完用の辞書(Dictionary の内部構造によっては不要)
- Completer: 補完の進捗(並列して補完をおこなうために欲しい)