# Erweiterte For Schleife



## protectedzone (13. Sep 2014)

Soll ich die erweiterte For-Schleife verwenden?

Normal:


```
for (int i = 0; i < buildings.length; i++) {
            buildings[i].doSomthing();
}
```

Was mit Netbeans empfehlt:


```
for (Building building : buildings) {
            building.doSomthing();
}
```

Sollte ich wegen der Performance wegen die zweite Variante wählen oder besteht der Unterschied nur bei der Syntax?

Grüsse, pZone


----------



## Thallius (13. Sep 2014)

Die zweite Version nennt sich Fast-Enumeration. Dreimal darfst Du raten warum 

Gruß

Claus


----------



## protectedzone (13. Sep 2014)

Cool, danke!


----------



## nvidia (13. Sep 2014)

Thallius hat gesagt.:


> Die zweite Version nennt sich Fast-Enumeration[...]



Dafür bitte mal eine seriöse Quelle posten. 

Die erweiterte For-Schleife bzw. "enhanced For-Loop" verwendet implizit einen Iterator und erzeugt auch mehr Byte-Code. Und wenn man sich dumm anstellt und damit z.B. über ein int-Array itertiert schlägt schön das Autoboxing zu was der Geschwindigkeit nicht wirklich zuträglich ist. Für das Beispiel ist das jedoch nicht relevant.


----------



## protectedzone (13. Sep 2014)

Hmh kannst du kurz ein Beispiel für das Autoboxing nennen? Ich iteriere noch oft über int Arrays...


----------



## JavaMeister (14. Sep 2014)

5 Sekunden ausprbieren? - Ohne Eigeninitiative wird das nix ;D


```
package de.uni.parser.core;

public class Test {

	public static void main(String[] args) {
		int[] array = new int[10];
		
		for(int i : array) {
			System.out.println(i);
		}
	}

}
```

Und Fast Enumaration ist das nicht in Java


----------



## protectedzone (14. Sep 2014)

Hi 
Autoboxing ist ja zum Beispiel int zu Integer. 
Sehe ich das richtig, dass das *kein* Autoboxing ist:



```
int[] array = new int[10];
 
		for(int i : array) {
			i++;
		}
```

Das aber schon:


```
int[] array = new int[10];
 
		for(int i : array) {
			System.out.println(i);
		}
```

?


----------



## nvidia (14. Sep 2014)

protectedzone hat gesagt.:


> Sehe ich das richtig, dass das *kein* Autoboxing ist



Laut Sprachspezifikation, ist das richtig. Nachlesen kann man das unter Chapter*14.*Blocks and Statements


----------

