|
Ci sono tre modi per attraversare una Lista
<A> List list = nuovo <A>ArrayList(); list.add(nuova A()); list.add(nuova A()); ...
Il primo tipo: for(<A>Iterator it = list.iterator(); it.hasNext(); ) { .... } Questa via è in un ciclo Allo stesso tempo, se vuoi rimuovere un elemento nel processo di piacere, puoi solo chiamare il metodo it.remove, non puoi usare il metodo list.remove, altrimenti ci sarà un errore di accesso concorrente. Ma la compatibilità è la migliore, adatta alla collezione Collection
Il secondo tipo: for(A a : lista) { ..... } Per ogni metodo è ancora un iteratore, il primo viene chiamato internamente, e la zuppa non cambia, e ci sono altre limitazioni a questo metodo circolare, quindi non è consigliato usarlo Può essere usato solo sopra JK1.5 con scarsa compatibilità. È meglio usare questo
Il terzo tipo: for(int i=0; i<lista.dimensione(); i++) { A a = list.get(i); ... } for loop, attraversare il contenuto di una collezione List funziona solo per List, perché List è una collezione ordinata , l'interno non è bloccato, la massima efficienza, ma quando si scrive multithreading, si dovrebbe considerare il problema delle operazioni concorrenti! Attraversare una collezione Set è lo stesso modo di una Lista, ma non puoi usare un ciclo for per iterare attraverso una collezione Set perché non c'è un metodo get() nella collezione Set. Ma può essere ripetuto con miglioramenti Collezione Attraversa il Set Set<String> set = nuovo HashSet<String>(); set.add("qqq"); set.add("www"); set.add("eee"); set.add("rrr");
for(Stringa s : set){ System.out.println("set="+s); }
|