Bundle被用来传递数据,为什么不用HashMap代替?
答:Bundle底层的结构是采用ArrayMap
- ArrayMap适用于小数据量操作,如果在数据量比较大的情况下,它的性能将退化。HashMap内部则是数组 + 链表,所以在数据量较少的时候,HashMap的Entry Array比ArrayMap占用更多的内存。而使用Bundle的场景大多数为小数据量。所以使用ArrayMap实现更合适。
- Android中如果使用Intent来携带数据的话,需要数据是基本类型或者可序列化类型,Bundle使用Parcelable进行序列化,而HashMap则是使用Serializable进行序列化。