Iterator: Porovnání verzí

Smazaný obsah Přidaný obsah
správná kategorizace
přidány informace ohledně implicitních iterátorů
Řádek 1:
[[Návrhový vzor| Návrhový vzor]] '''Iterator''' zajišťuje možnost procházení prvků bez znalosti jejich implementace. Lze implementovat pomocí [[Pole (datová struktura)| pole]] nebo jiných datových struktur. Pomocí datové struktury ArrayList je implementace daleko snažší.
 
== Implicitní iterátory ==
Některé objektově orientované jazyky jako [[Perl]], [[Python]], [[C#]], [[Ruby]] a pozdější verze [[Java| Javy]] a Delphi poskytují vlastní způsob jak iterovat elementy obsahující objekty nebo primitivní datové typy bez explicitního vytvoření iterátoru. V tomto případě iterátor není přístupný pro ostatní kód ale lze k němu přistoupit v dané posloupnosti elementů.
 
Implicitní iterátory jsou často označovány jako "foreach" a tento styl procházení elementů se také někdy nazývá "vnitřní iterace". Takto vypadá implicitní iterace v [[Programovací jazyk| programovacím jazyce]] [[Python]]:
<source lang="python">
for value in iterable:
print value
</source>
Jiní případ je v jazyce Ruby, tam si může objekt vytvořit kolekci sám sobě:
<source lang="ruby">
iterable.each do |value|
puts value
end
</source>
 
==Implementace iteratoru v jazyce [[Java|JAVA]]==