Android にデータを格納するという点では、大きな ArrayList を使用するか、SQLite データベースをセットアップする方が効率的でしょうか? 約 9,000 のバス停と停車地名 (両方とも文字列) を保存する必要があり、どの方法が最も迅速で効率的かを考えていました。
3 に答える
ArrayListはおそらく非常に悪い考えです。データを永続化する必要があると想定しているため、ユーザーがアプリを強制終了した場合、ArrayListを使用するとデータが失われます。データベースは永続的です(ユーザーがアプリのキャッシュをクリアしない限り)。したがって、ArrayListではなくデータベースを使用することを強くお勧めします。
1.)永続性が必要なため、SQLiteDBからデータを保存および取得します。また、9k以上の行があると言うので、単純な選択ですべてを一度に取得でき、必要に応じてデータを簡単にフィルタリングすることもできます。
2.)起動時に、すべてのデータをHashMaps(または場合によってはarraylists)などの効率的なメモリ構造に配置し、アプリ全体でそれらを参照します。このようにすると、1回だけアクセスできます。
3.)疑わしい場合は、DBを作成します。害はなく、ファイルよりも効率的で扱いやすい
データが変更されない場合は、おそらく起動時に読み取って、アプリの実行中にメモリに保持できます。たとえば、すべてのストップを含む .json ファイルを用意し、起動時にそれを読み取り、データを HashMap に配置するか、おそらく何かを検索するので使いやすいものにします。9000 までのエントリで問題なく動作する可能性があります。
ただし、使用中に停留所に関する情報を追加または更新する場合は、SQLite を選択することをお勧めします。