back to top

Il costrutto foreach in java

Il foreach è un particolare costrutto (disponibile a partire da Java 5) che ci permette di iterare velocemente una struttura dati. In java possiamo usarlo sia su un array oppure su oggetti di tipo Iterable,cioè che dispongono di un iteratore (java.util.Iterator).

Le Collections di java (Linkedlist, ArrayList, etc.) sono tutti oggetti di tipo Iterable. Vediamo il costrutto generico:

for(type_var: arr) {
  //ciclo
}

Supponiamo di creare un metodo che calcoli la somma di tutti gli elementi:

public static int somma(int [] array) {
  int somma = 0;
  for(int i = 0; i < array.length; i++) {
    somma += array[i];
  }
  return somma;
}

Allo stesso modo con il costrutto foreach rende tutto puù chiaro e sintetico:

public static int somma(int [] array) {
  int somma = 0;
  for(int element:array)
    somma+=element;
  return somma;
}

L’ intero element sarà il nostro i-esimo elemento corrispondente al for visto sopra. Adesso vediamo un esempio per quanto riguarda gli oggetti Iterable. In questo caso il codice risulterà ancora più sintetico. Ad esempio se vogliamo iterare una LinkedList, abitualemente agiamo in questo modo:

LinkedList <String> lista = new LinkedList<String>();
lista.add("a");
lista.add("b");
....

Iterator <String> it = lista.iterator();
while(it.hasNext()) {
  String str = it.next();
  ...
}

Mentre il costrutto foreach semplifica i riferimenti a livello di compilazione:

for(String str:lista) {
  ....
}

In questo caso str assumerà sequenzialmente il valore di ciascun elemento della lista.

Altri contenuti interessanti

Pubblicitร 

Leggi anche...

Java: cos’è e a cosa serve l’operatore modulo (%)

In Java, l'operatore modulo è rappresentato dal simbolo "%"...

Arrotondare un numero con Java

Quando si lavora con i numeri all'interno di un...

Java: cos’è l’errore NullPointerException e come risolverlo

RuntimeException รจ una superclasse di Java che ricomprende tutte...

Stringhe in Java

La gestione delle stringhe assume un ruolo fondamentale in...

Leggere un file di testo in java

In java ci sono diverse modalità per leggere dati...

Java split() – dividere una stringa

Grazie al metodo split() della classe String di Java...
Pubblicitร