文字列補完の実装準備(メモ)

トライによる文字列補完は容易に実現できるのですが,どうしてもインタフェースが複雑になってしまうので悩み中です.

すべての候補をまとめて受け取るようなインタフェースであれば簡単なのですが,候補を一つずつ受け取るには,どうしても補完の進捗を保存する必要があり,辞書クラスの他にも補完用のクラスが必要になってしまいます.正確には,通常検索用の辞書クラスに,補完用の辞書クラスと補完の進捗を格納するクラスを併せて 3 つです.

  • 例えば,こんな感じ
    • Dictionary: 通常検索用の辞書
    • CompletionDictionary: 補完用の辞書(Dictionary の内部構造によっては不要)
    • Completer: 補完の進捗(並列して補完をおこなうために欲しい)