0

我有大约 3000 对(键,值)。它们是固定的,不会永远改变。在我的应用程序中,有一个页面需要进行大约 200 个查询。对于每个查询,他们获取键并要求值。而且,它们是连续的。我必须完成查询 1 才能获得“值 1”,所以我知道查询 2 的键以获得“值 2”。

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

编辑:忘了说key和value的大小,key的大小:2char(unicode),value:4~6char,其实它类似于查找语言字典。

4

1 回答 1

0

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

如果您有相当少量的数据,您可以考虑使用一个静态SparseArray,它最初由 SQL 查询或代码中的分配填充。SparseArray's 旨在比HashTable's 更有效。

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

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

于 2013-05-01T16:21:13.957 回答