【问题标题】:android: how to query a key value pair efficientlyandroid:如何有效地查询键值对
【发布时间】:2013-05-01 16:09:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: android performance key keyvaluepair


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您告诉我有关哈希表的信息,我使用了哈希表,发现它不到 100 毫秒。大大改善!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 2018-01-22
    • 1970-01-01
    • 2017-12-21
    • 2020-04-11
    • 2021-12-23
    • 1970-01-01
    相关资源
    最近更新 更多