gpt4 book ai didi

带有字符串键的Android SparseArray?

转载 作者:可可西里 更新时间:2023-11-01 18:57:12 24 4
gpt4 key购买 nike

我需要使用散列图在我的 Android 应用程序中存储键/值(可能有数千个),但我知道我应该使用 SparseArray 以节省内存。但是,我的 key 必须是一个字符串。有没有办法创建 SparseArray 或其他替代方案的自定义实现?

最佳答案

SparseArray 仅在整数为键时才有效。这是一种内存优化,只有整数值才有可能,因为您需要对键进行二进制搜索。对字符串进行二进制搜索很昂贵且定义不明确(“1”应该小于还是大于“a”或“疯狂的日文字符”?),因此他们不这样做。

顺便说一句,SparseArray 节省内存但可能需要更多时间。 HashMap 上的 get 应该是 O(n/size),其中 size 是 hashmap 中的桶数。 SparseArray 将是 O(log(n))。使用哪个取决于您需要的内存和速度。如果你有一个非常大的(100Ks 的条目)你甚至会遇到内存分页问题,​​缓存未命中的物理现实可能会导致更多的 HashMap 表现更好,即使它在技术上更糟糕,因为它最多有 1 个缓存每次获取都未命中,而二分查找可能有多个。

关于带有字符串键的Android SparseArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24836728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com