La diferencia entre Java Array y ArrayList
1) Explicación incisiva:
Piense en ArrayList como una "matriz que amplifica automáticamente la capacidad".
2) matriz ([]): la más eficiente; pero su capacidad se fija y no se puede cambiar dinámicamente;
ArrayList: la capacidad puede crecer dinámicamente;
3) Sugerencias:
Según la eficiencia y la verificación de tipo, la matriz debe usarse tanto como sea posible.
Pero cuando intenta resolver problemas más generales, la funcionalidad de Array puede ser demasiado limitada.
4) Todo en Java es un objeto, y la matriz también es un objeto. Independientemente del tipo de matriz que use,
El nombre de la matriz en sí es en realidad una referencia, que apunta a un objeto real dentro del montón.
Este objeto se puede generar automáticamente a través de la "Sintaxis de inicialización de la matriz" o manualmente en una nueva expresión.
5) La matriz se puede usar como valor de retorno de función porque es la referencia del objeto;
6) La matriz de objetos es casi exactamente la misma que la matriz de tipo básica en uso.
Por ejemplo:
String [] Staff = New String [100];
7) Lo que posee el contenedor es en realidad una referencia que apunta al objeto, de modo que se pueda almacenar cualquier tipo. Por supuesto, esto no incluye el tipo básico, porque el tipo básico no hereda de ninguna clase.
8) Ante la matriz, podemos mantener directamente la matriz del valor de tipo básico (por ejemplo: int [] num;), o la matriz de la referencia (apuntando al objeto); Sin embargo, la clase de envoltura puede no ser fácil de usar.
Por supuesto, si su objeto operativo es del tipo básico y necesita amplificar automáticamente la capacidad cuando no hay espacio suficiente, la matriz no será adecuada, por lo que debe usar un contenedor de tipo de cubierta.
9) En algunos casos, las clases de contenedores aún pueden funcionar correctamente incluso si no se han transformado en su tipo original. Hay una situación que es especialmente especial: el compilador proporciona algún soporte adicional para la clase de cadenas para que funcione sin problemas.
10) Algunas operaciones básicas en matrices, como clasificación, búsqueda y comparación, son muy comunes. Por lo tanto, la clase de matrices se proporciona en Java para ayudar en estas operaciones: sort (), binarySearch (), igual (), relleno (), aslist ().
Sin embargo, la clase de matrices no proporciona un método de eliminación, y hay un método remover () en ArrayList no sé si es porque no es necesario hacer operaciones de eliminación en la matriz (porque debe usar la lista vinculada en este momento).
11) El uso de ArrayList también es muy simple: genere una lista de matrices, use add () para colocar objetos y use Get (i) para que coincida con el valor del índice para eliminarlos. Todo esto es exactamente lo mismo que el uso de Array, pero solo hay menos [].
2. Materiales de referencia:
1) Eficiencia:
La expansión de la matriz es un factor que tiene un mayor impacto en la eficiencia de ArrayList.
Cada vez que se ejecutan métodos como ADD, AddRange, Insert, InserTrange, verificarán si la capacidad de la matriz interna es insuficiente.
ArrayList es una versión compleja de Array
ArrayList encapsula una matriz de tipo de objeto.
2) Identificación de tipo:
Cuando ArrayList almacena un objeto, la información de tipo se descarta y todos los objetos se bloquean como objeto.
La diferencia entre ArrayList y Array se debe principalmente a la eficiencia del aumento de la capacidad dinámica.
3) ArrayList puede almacenar cualquier objeto, como cadena, etc.
¡Gracias por leer, espero que pueda ayudarlo.