我有一个 Android 应用程序,它遍历一个包含数千个整数的数组,并将它们用作键值来访问整数对(让我们称它们为 id),以便用它们进行计算。它需要尽可能快地完成,并最终返回对应用程序至关重要的结果。
我尝试将 HashMap 加载到内存中以快速访问这些数字,但它导致 OOM 异常。我还尝试将这些 id 写入 RandomAccessFile 并将它们在文件上的偏移量存储到另一个 HashMap 但它太慢了。另外,只存储偏移量的新 HashMap 仍然占用很大的内存。
现在我正在考虑使用 SQLite,但我不确定它是否会更快。有没有可以帮助我的结构或库?
编辑:密钥数量超过 2000 万,而我只需要访问数千个。我不知道我会事先访问哪些,因为它会随着用户输入而变化。