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 link che potrebbero interessarti
  • Utilizzare un JButton in Java Swing
  • Utilizzare HTML in componenti Java Swing
  • Numeri casuali in java
  • Modalità Full Screen Exclusive in java
  • Leggere un file di testo in java
  • Le variabili atomiche in java
  • Le classi anonime
  • Java Regex
  • Java Database MySql
  • Java Cursor Mouse
  • Import Static Java
  • Implementare un Singleton
  • Implementare un KeyListener in java Swing
  • Implementare il System.out su una JTextArea
  • Il costrutto if in java
  • Il blocco static
  • Creare una ToolBar in Java Swing
  • Chiudere le applicazioni Java Swing
  • Bordo con titolo in Java Swing
  • Background Image per componenti Java Swing