Cuatro métodos de recorrido ArrayList Java y uso de la clase ArrayList en Java
paquete com.test; import java.util.arrayList; import java.util.iterator; import java.util.list; public class ArrayListDemo {public static void main (string args []) {list <string> list = new ArrayList < String> (); (it1.next ()); for (string tmp: list) {system.out.println (tmp); Get (i));PD: Uso de la clase ArrayList en Java
1. ¿Qué es ArrayList?
ArrayList es la matriz dinámica legendaria.
Aumentar y disminuir dinámicamente los elementos
Implementar interfaces Icollection e ilist
Configuración flexible del tamaño de la matriz
2. Cómo usar ArrayList
El ejemplo más simple:
ArrayList list = new ArrayList (); 5); // Eliminar el sexto elemento para (int i = 0; i <3; i ++) // Agregar 3 elementos más list.add (i+20); .Toarray (typeof (int32))); // Devuelve la matriz contenida en ArrayList
Este es un ejemplo simple.
3. Métodos y propiedades importantes de ArrayList
1) Constructor
ArrayList proporciona tres constructores:
Public ArrayList ();
El constructor predeterminado inicializará la matriz interna con el tamaño predeterminado (16)
Public ArrayList (iCollection);
Construido con un objeto ICollection y agregue elementos de la colección a la lista de matrices
Public ArrayList (int);
Inicializar la matriz interna con el tamaño especificado
2) Propiedad iscronizada y ArrayList. Método Syncronized
La propiedad isSyncronized indica si la instancia de ArrayList actual admite la sincronización de subprocesos, mientras que el método estático syncronizado de ArrayList. Devuelve una encapsulación de sincronización de hilo ArrayList.
Si usa instancias de sincronización no subyacentes, debe llamar al bloqueo manualmente para mantener la sincronización de subprocesos al acceder a múltiples subprocesos, por ejemplo:
ArrayList list = new ArrayList ();
La propiedad sincronizada es realmente misma, pero para satisfacer la definición de sincronización de icollection,
Aquí todavía usamos Syncroot para mantener la estandarización del código fuente
{list.add ("agregar un elemento");Si usa la instancia devuelta por el método SynChronized de ArrayList, no necesita considerar el problema de la sincronización de hilo. por arrayList. Instancia sincronizada, cada propiedad en ella utiliza la palabra clave de bloqueo para garantizar la sincronización de subprocesos.
3) Contar atributo y atributo de capacidad
La propiedad Count es el número de elementos actualmente contenidos en ArrayList, y esta propiedad es de solo lectura.
La propiedad de capacidad es el número máximo que ArrayList puede contener actualmente.
4) Agregar, completar, eliminar, eliminar, remover, insertar, insertrange
Estos métodos son similares
El método Agregar se usa para agregar un elemento al final de la lista actual.
El método AddRange se usa para agregar un lote de elementos al final de la lista actual
El método eliminar se usa para eliminar un elemento y eliminarlo a través de la referencia del elemento mismo.
El método de eliminación se utiliza para eliminar un elemento y eliminarlo indexando el valor.
Removerange se usa para eliminar un lote de elementos, que se elimina especificando el índice inicial y el número de eliminaciones.
El inserto se usa para agregar un elemento a la posición especificada, y los elementos detrás de la lista se mueven hacia atrás a su vez.
Insertrange se usa para agregar un lote de elementos desde la posición especificada, y los elementos detrás de la lista se mueven hacia atrás a su vez.
Además, hay varios métodos similares:
El método Clear se utiliza para borrar todos los elementos existentes.
El método contiene se usa para encontrar que un objeto no está en la lista
No me cargaré con el resto.
5) Método Trimsize
Este método se utiliza para corregir la lista de matrices al tamaño del elemento real.
6) Método de Toarray
Este método copia el elemento ArrayList en una nueva matriz.
4. Conversión de ArrayList y Array
Ejemplo 1:
ArrayList list = new ArrayList (); ;
Ejemplo 2:
ArrayList list = new ArrayList (); ;
Lo anterior presenta dos métodos de conversión de ArrayList a Array
Ejemplo 3:
ArrayList list = new ArrayList (); ; / /Correcto String [] valores = (string []) list.toarray (typeof (string));
A diferencia de las matrices, debido a que se pueden convertir en matrices de objetos, no cometerá ningún error agregar diferentes tipos de elementos a ArrayList. Los elementos, de lo contrario, se lanzará una excepción que no se puede transformar.
5. Mejor consejo sobre el uso de ArrayList
En esta sección, discutiremos la diferencia entre ArrayList y Array, así como la eficiencia de ArrayList
1) ArrayList es una versión compleja de Array
ArrayList encapsula una matriz de tipo de objeto.
Determine el tamaño del elemento real.
6) Método de Toarray
Este método copia el elemento ArrayList en una nueva matriz.
4. Conversión de ArrayList y Array
Ejemplo 1:
ArrayList list = new ArrayList (); ;
Ejemplo 2:
ArrayList list = new ArrayList (); ;
Lo anterior presenta dos métodos de conversión de ArrayList a Array
Ejemplo 3:
ArrayList list = new ArrayList (); ; / /Correcto String [] valores = (string []) list.toarray (typeof (string));
A diferencia de las matrices, debido a que se pueden convertir en matrices de objetos, no cometerá ningún error agregar diferentes tipos de elementos a ArrayList. Los elementos, de lo contrario, se lanzará una excepción que no se puede transformar.
5. Mejor consejo sobre el uso de ArrayList
En esta sección, discutiremos la diferencia entre ArrayList y Array, así como la eficiencia de ArrayList
1) ArrayList es una versión compleja de Array
ArrayList encapsula una matriz de tipo de objeto. Método de matriz.
2) La influencia del tipo de objeto interno
Para los tipos de referencia generales, esta parte no tiene un gran impacto, pero para los tipos de valor, agregar y modificar elementos en ArrayList causará operaciones de embalaje y unboxing, y las operaciones frecuentes pueden afectar cierta eficiencia.
Pero para la mayoría de las personas, la mayoría de las aplicaciones usan matrices de tipos de valor.
No hay forma de eliminar este impacto.
3) expansión de la matriz
Este es un factor que tiene un mayor impacto en la eficiencia de ArrayList.
Siempre que ejecute ADD, AddRange, Insert, Insertrange y otros métodos para agregar elementos, verificará si la capacidad de la matriz interna es insuficiente. nuevo.
Ejemplo 1: Por ejemplo, si un datos con 200 elementos se agrega dinámicamente a una lista de matrices creada con el tamaño predeterminado de 16 elementos, pasará:
16*2*2*2 = 256
Cuatro expansiones cumplirán con los requisitos finales, así que si:
ArrayList list = new ArrayList (210);
Crear una lista de matrices en la forma no solo reducirá las operaciones de creación y copia de 4 veces, sino que también reducirá el uso de la memoria.
Ejemplo 2: Se crea una lista de matrices con los 30 elementos esperados:
ArrayList list = new ArrayList (30);
Durante el proceso de ejecución, si se agregan 31 elementos, la matriz se ampliará al tamaño de 60 elementos, y no se agregarán nuevos elementos en este momento. . Si en este momento, usa:
ArrayList list = new ArrayList (40);
Entonces todo está resuelto.
Por lo tanto, estimar correctamente los posibles elementos y llamar al método Trimsize en los momentos apropiados es una forma importante de mejorar la eficiencia del uso de ArrayList.
4) Con frecuencia llaman a índice, contiene y otros métodos (Sort, BinarySearch y otros cuadrados
La pérdida de eficiencia causada por el método está optimizada, no en esta columna) en primer lugar, debemos dejar en claro que ArrayList es una matriz dinámica, que no incluye algoritmos a los que se accede rápidamente a través de la clave o el valor, por lo que de hecho, Llamar al índice, contiene y otros métodos es fácil de ejecutar. Pares de valor como Hashtable o SortedList.
ArrayList al = new ArrayList (); Al.add ("Cómo"); AL.Add (300); AL.Add (1.2); AL.Add (22.8);