2013-05-01 21 views
0

我有大约3000对(键值)。他们是固定的,不会永远改变。在我的应用程序中,有一个页面需要大约200个查询。对于每个查询,他们都会拿钥匙并要求价值。而且,它们是连续的。我必须完成查询1以获得“值1”,然后我知道查询2的关键是获得“值2”。android:如何有效地查询键值对

我试着用SQLite实现。我测量了时间,发现这很慢,大约需要600毫秒。我想知道是否有更好的方法来实现它?例如,具有3000大小的字符串数组?或其他散列表?谢谢你的建议。

编辑:忘记提及key和value的大小,key的大小:2char(unicode),value:4〜6char,实际上,它类似于查找语言词典。

回答

0

答案取决于必须放入此容器中的数据量?例如。 3000对五字节:没问题,将这些数据保存在内存中;然而,有3000对350字节:已经大约1MB。

如果您的数据量较少,可以考虑使用静态的SparseArray,该静态数据最初由SQL查询或代码中的赋值填充。 SparseArray的意图是比HashTable更有效率。

如果密钥不是整数,则HashTable仍然比SQL查询快得多。

如果你有更大的数据集,你可以使用LruCache

+1

感谢您告诉我有关散列表,我使用散列表,发现它小于100毫秒。大大改善!谢谢 – manhon 2013-05-02 13:47:46

相关问题