Bundle被用来传递数据,为什么不用HashMap代替?

Bundle基于ArrayMap,适合小数据量操作,避免了HashMap在小数据量时的内存浪费。由于Intent的数据要求是基本类型或可序列化,Bundle使用Parcelable优化序列化过程,而HashMap使用Serializable,效率较低。因此,Bundle在Android中传递数据更为合适。
摘要由CSDN通过智能技术生成

Bundle被用来传递数据,为什么不用HashMap代替?
答:Bundle底层的结构是采用ArrayMap

  1. ArrayMap适用于小数据量操作,如果在数据量比较大的情况下,它的性能将退化。HashMap内部则是数组 + 链表,所以在数据量较少的时候,HashMap的Entry Array比ArrayMap占用更多的内存。而使用Bundle的场景大多数为小数据量。所以使用ArrayMap实现更合适。
  2. Android中如果使用Intent来携带数据的话,需要数据是基本类型或者可序列化类型,Bundle使用Parcelable进行序列化,而HashMap则是使用Serializable进行序列化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值