|
Obstajajo trije načini za prečkanje Seznama
List<A> List = novi ArrayList<A>(); list.add(novi A()); list.add(novi A()); ...
Prva vrsta: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } Ta način je v ciklu Hkrati, če želite odstraniti element v procesu užitka, lahko pokličete le metodo it.odstranite, metode list.remove pa ne morete uporabiti, sicer bo prišel do napake sočasnega dostopa. A združljivost je najboljša, primerna za zbirko Collection
Druga vrsta: for(A a : list) { ..... } Za vsako metodo je še vedno iterator, prvi se kliče interno, juha se ne spreminja, poleg tega pa obstajajo tudi druge omejitve te krožne metode, zato je uporaba ne priporoča Lahko se uporablja le nad JK1.5 z slabo združljivostjo. Set je najboljša uporaba tega
Tretja vrsta: for(int i=0; i<list.size(); i++) { A a = list.get(i); ... } za zanko prečkanje vsebine zbirke List deluje le za List, ker je List urejena zbirka , notranje ni zaklenjeno, kar je najvišja učinkovitost, vendar je pri pisanju večnitnosti treba upoštevati problem sočasnih operacij! Prečkanje zbirke Set je enak način kot List, vendar ne moreš uporabiti zanke for za iteracijo skozi zbirko Setov, ker v zbirki Set ni metode get(). A jo je mogoče zankati z izboljšavami Zbirka Traverse the Set Set<String> set = nov HashSet<String>(); set.add("qqq"); set.add("www"); set.add("eee"); set.add("rrr");
for(String s : set){ System.out.println("set="+s); }
|