Hvordan fungerer Java 'for each' loop?
Overvej:
List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList
for (String item : someList) {
System.out.println(item);
}
Hvordan ville den tilsvarende for
-sløjfe se ud uden at bruge syntaksen for each?
1437
3
Bemærk, at hvis du skal bruge
i.remove();
i din løkke eller få adgang til den faktiske iterator på en eller anden måde, kan du ikke brugefor ( : )
-idiomet, da den faktiske iterator blot er udledt.Som Denis Bueno har bemærket, fungerer denne kode for ethvert objekt, der implementerer
Iterable
-interfacet.Hvis den højre side af
for (:)
-idiomet er etarray
i stedet for etIterable
-objekt, bruger den interne kode også en int-indextæller og kontrollerer i stedetarray.length
. Se Java Language Specification.For-each-loopet i Java bruger den underliggende iteratormekanisme. Så det er identisk med følgende:
Her er et tilsvarende udtryk.