我想了解在Android程序中使用HashMap
与Bundle
对性能的影响。我了解Bundle
是一个专门的Android组件 - 因此,如果需要简单地存储基本数据类型(HashMap
s,Integer
,它会优于String
s等)而不是复杂的物体?
答案 0 :(得分:1)
Bundle
实际上建立在ArrayMap
之上,这是Map
s的内存效率实现。对于较小的ArrayMap
,搜索比计算类似填充的HashMap
的哈希计算时间更短。但如果你有超过几百个项目,HashMap
将会表现更好。
此外,Bundle
s并非设计为通用数据结构。
答案 1 :(得分:1)
Bundle 允许将String,integer,boolean等放入其中,但HashMap只允许使用字符串,对于其他人,您必须将它们转换为/从对象转换。
另一个区别是,对于Bundle,它包含的每个对象都是可以分配的。这允许Bundles用作服务参数,并附加到意图或片段以传递到活动或片段。