私のAndroidアプリでは、オートコンプリート付きの入力フィールドが必要です。アイテムの数は約300000になります。最善の解決策は、アイテムをファイル(sdcard上)に入れることです。1行に1つのアイテムがあり、各行の文字数は同じであるため、特定の行番号を探すことができます。 。ユーザーがテキストフィールドに何かを入力すると、ファイルを(RandomAccessFileを介して)バイナリ検索し、提案を表示します。
オートコンプリートを超高速(理想的には100ミリ秒未満ですが、不可能だと思います)にしたいのですが、どのような最適化を実行できますか?
更新1: ユーザー入力をスペース付きの小文字の英語文字(az)に変換します。したがって、「A/b」は「ab」に変換されてから検索されます。
Uodate 2: 単語の先頭の部分文字列を検索するために、追加のものが必要であることに気付きました。