Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia entre vectores y listas de matrices

La diferencia entre vectores y listas de matrices

Hilo de lista de matriz segura de vector no seguro

1. Desde la perspectiva de la forma de almacenar datos:

1. ArrayList se utiliza para almacenar datos en una matriz e implementa una matriz de tamaño variable.

Permite todos los elementos, incluido null.

Características:

(1) ArrayList no está sincronizado.

(2) La cantidad de elementos en esta matriz es mayor que la cantidad real de datos almacenados. Para agregar e insertar elementos, los elementos pueden indexarse ​​directamente por números de serie, pero al insertarlos. datos, los elementos de la matriz diseñados deben moverse a la memoria, por lo que la indexación de datos es rápida y la inserción de datos es lenta.

2. Vector también usa matrices para almacenar datos. Debido al uso de métodos de sincronización (seguridad de subprocesos), su rendimiento es peor que ArrayList.

Características:

(1) El vector es sincrónico.

(2) Vector crea un iterador. Cuando se crea y se utiliza el iterador, otro hilo cambia el estado de Vector (como agregar o eliminar algunos elementos), luego el método de llamada al iterador lo hará. Se lanza ConcurrentModificationException, por lo que se debe detectar la excepción.

2. Desde la perspectiva de la eficiencia de las operaciones de acceso

Arraylist es el más rápido en operaciones de adquisición de datos.

Entre las operaciones de almacenamiento, linklist es la más rápida.

En la operación de eliminación de datos, la lista de enlaces es la más rápida.

En tercer lugar, desde la perspectiva de la aplicación:

Si necesita un acceso rápido y aleatorio a los elementos, debe utilizar un ArrayList.

Si el programa está en un entorno de un solo subproceso, o se accede a él en un solo subproceso, debería considerar el uso de clases asincrónicas, porque las clases asincrónicas son más eficientes si puede haber varios subprocesos accediendo a una clase al mismo tiempo; Al mismo tiempo, debe utilizar la clase de sincronización.