Es bedeutet eine Sache, es ist eine erweiterte for-Schleife.
for (String i: words)
bedeutet die gleichen Dinge wie
for (int i = 0; i < words.length; i++) {
//
}
Joshua Bloch, in Artikel 46 seiner lesenswert Effective Java, sagt der folgende:
Die for-each Loop, eingeführt in Release 1.5, beseitigt das Durcheinander und die Möglichkeit eines Fehlers, indem der Iterator oder die Indexvariable vollständig ausgeblendet wird. Die sich ergebende Idiom gilt gleichermaßen für Sammlungen und Arrays:
Die bevorzugte Idiom für Iterieren über Sammlungen und Arrays
for (Element e : elements) {
doSomething(e);
}
Wenn Sie den Doppelpunkt sehen (:), lesen Sie es als „in“. So liest sich die obige Schleife als "für jedes Element e in Elementen". Beachten Sie, dass es für die Verwendung der for-each-Schleife keine Leistungseinbußen gibt, auch nicht für Arrays. Tatsächlich kann es unter bestimmten Umständen einen leichten Leistungsvorteil gegenüber einer gewöhnlichen for-Schleife bieten, da es die Grenze des Array-Index nur einmal berechnet. Während Sie dies manuell tun können (Punkt 45), tun dies Programmierer nicht immer.
Dies ist bekannt als eine for-each-Schleife, möchten Sie vielleicht googeln und bis jetzt hat keine der Antworten es noch benannt. – 11684
mögliches Duplikat von [Wie funktioniert das Java für jede Schleife?] (Http://stackoverflow.com/questions/85190/how-does-the-java-for-each-loop-work) –
Die Antworten auf diese Fragen scheint nicht vollständig zu sein: Was ist das: import hudson.model.SCMS; (...) SCMS: für (SCM scm: scmTriggerItem.getSCMs()) {etwas();}? – Gustave