V tomto krátkém textu si ukážeme, jak s iterátory pracovat, k čemu se vůbec hodí a jak nám mohou ulehčit práci. Iterátory jsou ve spojením s kolekcemi opravdu silnou stránku pro práci se seznami. Dalo by se říci, že jsou obdobou pro Enumeration.
Pokud chceme iterovat například nějaké asociativní pole typu ArrayList (pole není podmínkou - může jít o List, kolekce, Vector, ..), můžeme použít snadný následující kód.
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
//vytvoreni ArrayListu a vlozeni dat
ArrayList list = new ArrayList();
list.add("frk1");
list.add("frk2");
list.add("frk3");
//vytvoreni objektu tridy Iterator
Iterator it = list.iterator();
//vypsani vsech hodnot pomoci cyklu
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
Metoda hasNext() vraci true, pokud existuje další prvek. Metoda next() právě další prvek "vyzvedne".
Existují i další možnosti, jak iterovat. V Javě můžeme například použít zápis cyklu for, díky kterému můžeme velice přehledně a elegantně iterovat.
public class Main {
public static void main(String[] args) {
//vytvoreni pole celych cisel
int[] pole = {1, 2, 3, 4};
//vypsani vsech hodnot pomoci cyklu
for(Object obj: pole) {
System.out.println(obj);
}
}
}
Tato ukázka je mnohem elegantnější, než předchozí řešení. Vytvořili jsme si pole celých čísel, které jsme následně vypsali. Daná čísla jsme přiřazovali do instance třídy Object - v tomto kódu je to zcela zbytečné, ale v jiných řešeních to může být univerzální, protože se tato část kódu nestará o to, jestli iterujeme pole, kolekci, či cokoliv jiného.
