Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 13604|Risposta: 0

[JavaSE] Attraversamento della raccolta di liste in Java e analisi comparativa di due classi di implementazione

[Copiato link]
Pubblicato su 04/01/2015 13:29:38 | | |
[mw_shl_code=java,true]package com.sort;  
  
import java.util.ArrayList;  
import java.util.Iterator;  
importa java.util.List;  
  
/**
* Tre tipi di attraversamento della lista
* @author Proprietario
*
*/  
classe pubblica ListTest {  
  
    Public static void main(String[] args) {  
         
        <String> List list = nuovo <String>ArrayList();  
         
        list.add("a");  
        list.add("b");  
        list.add("c");  
        list.add("c"); Si possono aggiungere dati duplicati  
         
        Metodo di attraversamento 1  
        for(Iterator<String> iterator = list.iterator(); iterator.hasNext(); ){  
            Valore della stringa = iterator.next();  
              
            System.out.println(value);  
        }  
         
        Metodo di attraversamento 2  
        for(String value : list){  
            System.out.println(value);  
        }  
         
        Metodo di attraversamento 3  
        for(int i=0; i<lista.dimensione(); i++){  
            System.out.println(list.get(i));  
        }  
         
    }  
} [/mw_shl_code]


Analisi comparativa dei tre attraversamenti:

Attraversamento del metodo 1:

Durante l'esecuzione, il blocco dei dati verrà effettuato, le prestazioni saranno leggermente peggiori e, se vuoi rimuovere un elemento durante il ciclo, puoi solo chiamare il metodo it.remove.   

Attraversamento del Metodo 2:

Chiama internamente il primo tipo

Metodo 3: Attraversamento:

Non è bloccato internamente, che è il più efficiente, ma quando si scrive multithreading bisogna considerare il problema delle operazioni concorrenti

Le due principali implementazioni dell'interfaccia List, ArrayList e LinkedList, possono essere attraversate in questo modo

Analisi comparativa di ArrayList vs LinkedList
a) Il livello sottostante di ArrayList è implementato con array, e il livello sottostante di LinkedList è implementato con liste collegate bidirezionali.
b) Quando si eseguono operazioni di inserimento o cancellazione, è meglio usare LinkedList.
c) Quando si effettua un'operazione di ricerca, è meglio utilizzare ArrayList.


Per dirla in modo diretto, nella struttura dati si tratta di archiviazione sequenziale e a catena




Precedente:Uso del tag jstl &lt;c:if&gt;
Prossimo:java:list和set集合的遍历
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com