Visualizzazione dei risultati da 1 a 5 su 5

Discussione: ArrayList e Iterator

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    8

    ArrayList e Iterator

    Salve a tutti.

    Ho un ArrayList<String> contenente 3 stringhe
    codice:
    ArrayList<String> list = new ArrayList<String>();
    list.add(String s);
    list.add(String m);
    list.add(String p);
    Istanzio un iteratore per scorrere l'ArrayList
    codice:
    Iterator<String> it = list.iterator();
    E' possibile, utilizzando l'iterator per scorrere l'ArrayList, inserire i tre elementi in un'unica stringa del tipo:

    codice:
    while(it.hasNext()){
    String total += it.next();
    }
    Se questa metodo è scorretto ( come penso che sia) , in che modo è possibile inserire tutti gli elementi di un arrayList di stringhe in una stringa unica?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: ArrayList e Iterator

    Originariamente inviato da laganas
    E' possibile, utilizzando l'iterator per scorrere l'ArrayList, inserire i tre elementi in un'unica stringa del tipo:

    codice:
    while(it.hasNext()){
    String total += it.next();
    }
    Se questa metodo è scorretto ( come penso che sia)
    È scorretto per due motivi: innanzitutto la variabile 'total' è "locale" nel corpo del while, quindi verrebbe ricreata ad ogni ciclo (è così non ti è certo utile). Inoltre per poter usare += la variabile deve essere già inizializzata.

    Soluzione: definisci prima e fuori dal while una variabile String inizializzata a "". Poi nel ciclo accoda la stringa fornita da next().

    Nota: hai usato i generics, quindi almeno Java 5. Puoi evitare Iterator+while+hasNext+next usando il "for-each".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    8
    Grazie della risposta.

    Quindi l'utilizzo di un Iterator da Java 5 in poi è sconsigliato?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da laganas
    l'utilizzo di un Iterator da Java 5 in poi è sconsigliato?
    No. Anzi, il "for-each" nasconde certe cose (in primis l'Iterator stesso nel caso di oggetti Iterable). Motivo per cui certe cose con il for-each non puoi farle.
    Il for-each è semplicemente "zucchero sintattico", una abbreviazione a livello di sintassi e non c'è nulla che può fare di più rispetto a quello che si poteva fare pre-Java 5.
    Se devi fare cose semplici (come nel tuo caso), il for-each è ok. Se devi ad esempio invocare il remove() del Iterator o ad esempio iterare in "sincrono" su 2 Iterator, devi usare esplicitamente Iterator.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    8
    Grazie della risposta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.