¿Por qué Android diseña Bundle en lugar de usar HashMap directamente para transmitir datos?
El interior del paquete se implementa a través de ArrayMap. ArrayMap se implementa mediante dos matrices. La matriz int almacena el subíndice correspondiente de los datos del objeto, la matriz de objetos almacena las claves y los valores, y las claves se ordenan internamente por dicotomía. Por lo tanto, al agregar, eliminar y buscar datos, se utiliza el método de dicotomía para la búsqueda, que solo es adecuado para operaciones con una pequeña cantidad de datos. Si la cantidad de datos es relativamente grande, su rendimiento empeorará. Sin embargo, HashMap es una estructura de matriz + lista vinculada, por lo que cuando la cantidad de datos es pequeña, la matriz de entrada de HashMap ocupa más memoria que ArrayMap. Debido a que la mayoría de los escenarios que usan Bundle son datos pequeños, nunca he visto un escenario en el que se transmitan más de 10 datos entre dos actividades. Entonces, en comparación, usar ArrayMap para guardar datos en este caso tiene un gran impacto en la velocidad de computación. Uso de memoria. Hay ventajas, por lo que usar Bundle para transmitir datos puede garantizar una velocidad más rápida y un menor uso de memoria.
Otra razón es que si usa Intent para transportar datos en Android, los datos deben ser de un tipo básico o serializable. HashMap usa Serializable para la serialización y Bundle usa Parcelable para la serialización. En la plataforma Android, se recomienda utilizar Parcelable para implementar la serialización. Aunque es más complejo de escribir, la sobrecarga es relativamente baja. Por lo tanto, para serializar y deserializar datos más rápido, el sistema encapsula la clase Bundle para facilitar nuestra transmisión de datos.
Espero que te ayude. Fujian Hummingbird Cloud Business tiene la respuesta para usted.