|
Nimekirja läbimiseks on kolm võimalust
List<A> list = uus ArrayList<A>(); list.add(uus A()); list.add(uus A()); ...
Esimene tüüp: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } See on tsüklis Samas, kui soovid naudingu protsessis elementi eemaldada, võid nimetada ainult it.remove meetodit, ei saa kasutada list.remove meetodit, vastasel juhul tekib samaaegse ligipääsu viga. Aga sobivus on parim, sobib Collection kollektsiooni jaoks
Teine tüüp: for(A a : list) { ..... } Iga meetodi puhul on see siiski iterator, esimene nimetatakse sisemiselt, suppi ei muudeta ning sellel ringmeetodil on muid piiranguid, seega ei soovitata seda kasutada Seda saab kasutada ainult üle JK1.5 kehva ühilduvusega. Set on parim kasutada just seda
Kolmas tüüp: for(int i=0; i<list.size(); i++) { A a = list.get(i); ... } for loop, töötab List-kogu sisu läbimine ainult Listi puhul, sest List on järjestatud kogu , sisemine ei ole lukus, mis on kõrgeim efektiivsus, kuid mitmelõimelisuse kirjutamisel tuleks arvestada samaaegsete operatsioonide probleemiga! Komplekti kogumiku läbimine on samamoodi nagu List, kuid sa ei saa kasutada for-tsüklit Set-kogu läbimiseks, sest Set kollektsioonis puudub get() meetod. Aga seda saab ka täiustustega loopida Läbige komplekti kogu Komplekt<String> = uus HashSet<String>(); set.add("qqq"); set.add("www"); set.add("eee"); set.add("rrr");
for(String s : set){ System.out.println("set="+s); }
|