|
Istnieją trzy sposoby przemierzania Listy
List<A> List = nowy ArrayList<A>(); list.add(nowy A()); list.add(nowy A()); ...
Pierwszy typ: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } W ten sposób jest to cykl Jednocześnie, jeśli chcesz usunąć element w procesie przyjemności, możesz użyć tylko metody it.deue, nie możesz użyć metody list.deve, bo w przeciwnym razie pojawi się błąd współrzędnego dostępu. Ale kompatybilność jest najlepsza, odpowiednia dla kolekcji Kolekcji
Drugi typ: for(A a : list) { ..... } Dla każdej metody jest to iterator, pierwszy jest wywoływany wewnętrznie, a zupa nie jest zmieniana, a ta metoda kołowa ma inne ograniczenia, dlatego nie zaleca się jej stosowania Można go używać tylko powyżej JK1.5 przy słabej kompatybilności. Najlepiej użyć tego
Trzeci typ: for(int i=0; i<list.size(); i++) { A a = list.get(i); ... } dla pętli przechodzenie przez zawartość kolekcji List działa tylko dla List, ponieważ List jest kolekcją uporządkowaną , wewnętrzne nie jest zablokowane, co daje najwyższą wydajność, ale przy zapisie wielowątkowania należy rozważyć problem operacji współbieżnych! Przechodzenie przez kolekcję Zbiorów jest takie samo jak w Liście, ale nie można użyć pętli for do iteracji przez kolekcję Zbiorów, ponieważ w kolekcji Zbiorów nie ma metody get(). Ale można to zapętlić z ulepszeniami Kolekcja Traverse the Set Set<String> set = nowy HashSet<String>(); set.add("qqq"); set.add("www"); set.add("eee"); set.add("rrr");
for(String s : set){ System.out.println("set="+s); }
|