首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓应用的HashMap替代方案

安卓应用的HashMap替代方案
EN

Stack Overflow用户
提问于 2012-06-01 09:37:46
回答 2查看 3.6K关注 0票数 4

我遇到了java.util Hashmap的OOM问题,所以我正在寻找内存友好的HashMap替代标准Java HashMap。我尝试过Trove,它有一点改进,但仍然时不时地出现OOM。如果内存是高效的,我可以适应一些速度损失。

我不是在找DB。基于文件的HashMap实现也很好,只要它们离线工作。我正在存储像int和byte这样的原语。

另外,请说明您是否有任何经验,以及您在记忆力方面有多大的进步。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-01 09:54:39

我可以想到两个适合您的选项--哪一个最好完全取决于您的应用程序。第一种是使用WeakReference或SoftReference。现在请记住,从Android2.3开始,VM变得更具侵略性,因此收集VM可能会更频繁地收集这些类型的引用。就我个人而言,我并不是出于这个唯一的原因而热衷于使用这些类型的引用,但有些人可能会有不同的观点。第二种选择,也是我推荐的一种,是查看LRU缓存。您可以使用LinkedHashMap实现自己的LRU缓存。但是如果你使用地图来存储位图,我强烈建议你看看Android兼容包提供的位图缓存,其中包括一个位图缓存。这里有几个你可以用来阅读的链接:

Weak References

Soft References

LRU Cache using LinkedHashMap

Android Bitmap Cache and why you should avoid Weak/Soft References

票数 5
EN

Stack Overflow用户

发布于 2015-08-17 14:55:04

你应该看看ArrayMapSparseArray。这些是在android中使用HashMap的高效内存替代方案。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10843393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档