2 つの列で構成される大きな CSV ファイル (8000 行) があります。最初の列は 1 ~ 10000 の範囲の整数で、2 番目の列は 6 ~ 10 文字の文字列です。私の実装は Android にあるため、AssetManager を使用してファイルにアクセスしているため、InputStream を使用してファイルから読み取る必要があります。
システムへの入力は 1 ~ 10000 の整数で、出力は対応する文字列、または一致する整数がない場合は null です。アプリの一般的な使用例には、複数 (~4) のそのような要求が含まれます。現在の実装では、それぞれの要求でアプリが 2 ~ 3 秒間フリーズします。
ファイル全体をメモリに保存せずに、電話帳 (つまり、O(log(n)) 時間) 検索を使用して、この検索を効率的に実行できるようにしたいと考えています。ファイルをCSVから別のものに再フォーマットする必要があると思います...おそらくSQLデータベースですか?この場合、適切な実装は何でしょうか?
私は大規模なデータ アクセスにまったく慣れていません。正直なところ、Android でファイルがメモリに読み込まれ、いつアクセスされるかについての私のメンタル モデルは少しあいまいです。前もって感謝します。