[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
|