Sto migrando un pezzo di codice per fare uso di generici. Un argomento per farlo è che il ciclo for è molto più pulito di tenere traccia degli indici, o usare un iteratore esplicito.Iterazione di un elenco in ordine inverso in java
In circa la metà dei casi, l'elenco (un oggetto ArrayList) viene iterato in ordine inverso utilizzando un indice oggi.
Qualcuno può suggerire un modo più pulito di farlo (poiché non mi piace il indexed for loop
quando si lavora con le raccolte), sebbene funzioni?
for (int i = nodes.size() - 1; i >= 0; i--) {
final Node each = (Node) nodes.get(i);
...
}
Nota: Non posso aggiungere eventuali nuove dipendenze di fuori del JDK.
Cosa c'è di così male nell'usare un indice esplicito per iterare su una struttura di dati indicizzati? Almeno ti mostra cosa sta succedendo esattamente. Per l'iterazione all'indietro ho sempre il seguente idioma leggermente più breve: 'for (int i = nodes.size(); --i> = 0;)' – x4u
Niente di particolarmente, preferirei semplicemente programmare su un'interfaccia e non sapere cosa tipo di lista che sto usando. Anche se mi piace molto la tua mano corta. (+1 commento) –
@ x4u: Non c'è molto, anche se Iterator è fail-fast e consente anche di rimuovere facilmente gli elementi durante l'iterazione. – Adamski