何千もの整数の配列を反復処理するAndroidアプリケーションがあり、それらを使用して計算を行うために、整数のペア(IDと呼びます)にアクセスするためのキー値としてそれらを使用します。できるだけ速く実行する必要があり、最終的には、アプリケーションにとって重要な結果を返します。
これらの番号にすばやくアクセスするためにHashMapをメモリにロードしようとしましたが、OOM例外が発生しました。また、これらのIDをRandomAccessFileに書き込んで、ファイルのオフセットを別のHashMapに保存しようとしましたが、遅すぎました。また、オフセットのみを格納する新しいHashMapは、依然として大きなメモリを占有しています。
今私はSQLiteを検討していますが、それがもっと速くなるかどうかはわかりません。それを助けることができる構造やライブラリはありますか?
編集:キーの数は2000万を超えていますが、アクセスする必要があるのは数千にすぎません。ユーザー入力によって変化するため、事前にアクセスするものがわかりません。