¿Por qué Android diseña Bundle en lugar de usar HashMap directamente para la transferencia de datos?
El paquete se implementa internamente mediante ArrayMap. ArrayMap implementa dos matrices internamente. Una matriz int almacena los datos del objeto correspondientes a Standard, y una matriz de objetos almacena claves. y valores, y utiliza internamente la dicotomía para ordenar claves. Por lo tanto, al agregar, eliminar o buscar datos, se utilizará la búsqueda binaria. Esto solo es adecuado para operaciones con pequeñas cantidades de datos. Si la cantidad de datos es relativamente grande, se utilizará la búsqueda binaria, que solo es adecuada para operaciones con pequeñas cantidades de datos. Si la cantidad de datos es relativamente grande, su rendimiento disminuirá. La estructura interna de HashMap es una lista enlazada de matriz, por lo que cuando la cantidad de datos es pequeña, la matriz de entrada de HashMap ocupa más memoria que ArrayMap. Dado que la mayoría de los escenarios que usan paquetes tienen pequeñas cantidades de datos, no he visto escenarios en los que se pasan más de 10 datos entre dos actividades, por lo que, en comparación, en este caso use ArrayMap para guardar los datos en tiempo de ejecución. Hay ventajas en la velocidad y el uso de memoria. , por lo que usar Bundle para transferir 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, necesita que los datos sean de un tipo básico o serializable. HashMap usa Serializable para la serialización, mientras que Bundle usa Parcelable para la serialización. publicación por entregas. En la plataforma Android, se recomienda usar Parcelable para implementar la serialización. Aunque el método de escritura es complicado, la sobrecarga es pequeña. Por lo tanto, para serializar y deserializar datos más rápidamente, el sistema encapsula la clase Bundle para facilitar nuestros datos. transmisión. .
Espero que te resulte útil. Fujian Hummingbird Cloud Business te proporciona