我想了解在Android程序中使用HashMap
和Bundle
的性能影响。我知道Bundle
是一个专门的Android组件 - 如果只需要存储基本数据类型(如Integer
,String
等),而不是复杂对象,那么它是否比HashMap
更优秀呢?
我想了解在Android程序中使用HashMap
和Bundle
的性能影响。我知道Bundle
是一个专门的Android组件 - 如果只需要存储基本数据类型(如Integer
,String
等),而不是复杂对象,那么它是否比HashMap
更优秀呢?
Bundle
其实是基于ArrayMap
构建的,而ArrayMap
是Map
的内存高效实现。对于较小的ArrayMap
,搜索所需的计算时间比为类似数量的HashMap
计算哈希值所需的时间少。但如果其中有超过几百个项目,则HashMap
的性能更好。
此外,Bundle
并不是设计成通用数据结构的。
Bundle 允许将 String、整数、布尔等置于其中,但是 HashMap 只允许字符串,对于其他类型的数据需要进行对象转换。
另一个区别是,使用 Bundle 包装的每个对象都可以被序列化(Parcelable)。这使得 Bundle 可用作服务参数,并附加到 Intent 或 Fragment 中以传递到活动或片段中。