[mw_shl_code=java,true]package com.sort;
import java.util.ArrayList; importar java.util.Iterator; importar java.util.List;
/** * Tres tipos de recorrido de la lista * @author Propietario
* */ clase pública ListTest {
empty estático público main(String[] args) {
<String> Lista lista = nueva <String>ArrayList();
list.add("a"); list.add("b"); list.add("c"); list.add("c"); Se pueden añadir datos duplicados
Método de recorrido 1 for(Iterator<String> iterator = list.iterator(); iterator.hasNext(); ){ Valor de cadena = iterator.next();
System.out.println(valor); }
Método de recorrido 2 for(String value : list){ System.out.println(valor); }
Método de recorrido 3 for(int i=0; i<lista.tamaño(); i++){ System.out.println(list.get(i)); }
} } [/mw_shl_code]
Análisis comparativo de los tres recorridos:
Recorrido de método 1: Durante la ejecución, se realizará el bloqueo de datos, el rendimiento será ligeramente peor y, si quieres eliminar un elemento durante el bucle, solo puedes llamar al método it.remove.
Recorrido del método 2: Llama internamente al primer tipo
Método 3: Desplazamiento: No está bloqueado internamente, lo cual es lo más eficiente, pero al escribir multihilo debe considerarse el problema de las operaciones concurrentes
Las dos implementaciones principales de la interfaz List, ArrayList y LinkedList, pueden recorrerse de esta manera Análisis comparativo de ArrayList vs LinkedList a) La capa subyacente de ArrayList se implementa con arrays, y la capa subyacente de LinkedList se implementa con listas enlazadas bidireccionales. b) Al realizar operaciones de inserción o eliminación, es mejor usar LinkedList. c) Al realizar una operación de búsqueda, es mejor usar ArrayList.
Para decirlo claramente, en la estructura de datos se trata de almacenamiento secuencial y almacenamiento en cadena
|