|
Existují tři způsoby, jak procházet Seznam
List<A> list = nový ArrayList<A>(); list.add(new A()); list.add(new A()); ...
První typ: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } Tímto způsobem je to v cyklu Zároveň, pokud chcete odstranit prvek v procesu potěšení, můžete použít pouze metodu it.remove (metodu it.remove ), ale nemůžete použít metodu list.take, jinak dojde k chybě souběžného přístupu. Ale kompatibilita je nejlepší, vhodná pro kolekci
Druhý typ: for(A a : list) { ..... } Pro každou metodu je stále iterátor, první se volá interně a polévka se nemění, a existují i další omezení této kruhové metody, proto se nedoporučuje ji používat Lze jej používat pouze nad JK1.5 s nízkou kompatibilitou. Set je nejlepší použít právě tuto
Třetí typ: for(int i=0; i<list.size(); i++) { A a = list.get(i); ... } pro smyčku funguje procházení obsahu kolekce List pouze pro List, protože List je uspořádaná kolekce , interní není zamčeno, což je nejvyšší účinnost, ale při zápisu vícevláknového zpracování by měl být zohledněn problém souběžných operací! Procházení kolekce Set je stejné jako u Seznamu, ale nemůžete použít for smyčku k iteraci kolekce Set, protože v této kolekci není metoda get(). Ale lze to smyčkovat s vylepšeními Kolekce 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); }
|