Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 13604|Respuesta: 0

[JavaSE] Travesía de la colección de listas en Java y análisis comparativo de dos clases de implementación

[Copiar enlace]
Publicado en 4/1/2015 13:29:38 | | |
[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




Anterior:Uso de la etiqueta jstl &lt;c:if&gt;
Próximo:java:list和set集合的遍历
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com