H
helium138
Gast
Hallo!
Habe mich Anfangs gewundert, dass es in java garkeine Foreach-Schleife gibt und sie dann doch gefunden, ist halt eine for-Schleife mit anderer Syntax. Über deren Möglichkeiten bin ich aber eher enttäuscht.
Also klar muss man bei foreach auch in anderen Sprachen Abstriche machen, aber bei Java an 2 Punkten wohl besonders.
1. Sehe ich das richtig, dass foreach in Java nur "readonly" funktioniert und man die Elemente eines Arrays/List etc. innerhalb des Schleifenrumpfes garnicht verändern kann?
Falls ja, da würde mich mich brennend der Grund interessieren. Die Java-Entwickler werden das doch nicht aus Jux und Tollerei so gemacht haben.
2. Irgendwie scheint foreach in Java laut Hörensagen ungefragt Autoboxing zu betreiben. Kann mir einer erklären wo genau?
Also wenn ich ein int-Array habe und die einzelnen Elemente im Rumpf ausgeben will, davor aber noch mit der Zahl 5 multipliziere... wird das entsprechende Arrayelement dann erst zu Integer geboxt, danach wird festgestellt dass es noch mit 5 multipliziert werden muss vor der Ausgabe und deswegen wieder ungeboxt?
Danke!
Habe mich Anfangs gewundert, dass es in java garkeine Foreach-Schleife gibt und sie dann doch gefunden, ist halt eine for-Schleife mit anderer Syntax. Über deren Möglichkeiten bin ich aber eher enttäuscht.
Also klar muss man bei foreach auch in anderen Sprachen Abstriche machen, aber bei Java an 2 Punkten wohl besonders.
1. Sehe ich das richtig, dass foreach in Java nur "readonly" funktioniert und man die Elemente eines Arrays/List etc. innerhalb des Schleifenrumpfes garnicht verändern kann?
Falls ja, da würde mich mich brennend der Grund interessieren. Die Java-Entwickler werden das doch nicht aus Jux und Tollerei so gemacht haben.
2. Irgendwie scheint foreach in Java laut Hörensagen ungefragt Autoboxing zu betreiben. Kann mir einer erklären wo genau?
Also wenn ich ein int-Array habe und die einzelnen Elemente im Rumpf ausgeben will, davor aber noch mit der Zahl 5 multipliziere... wird das entsprechende Arrayelement dann erst zu Integer geboxt, danach wird festgestellt dass es noch mit 5 multipliziert werden muss vor der Ausgabe und deswegen wieder ungeboxt?
Danke!