|
Der er tre måder at bevæge sig gennem en liste på
Listeliste<A> = ny ArrayList<A>(); list.add(nyt A()); list.add(nyt A()); ...
Den første type: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } Denne vej er i en cyklus Samtidig, hvis du vil fjerne et element i nydelsesprocessen, kan du kun kalde it.reage-metoden, du kan ikke bruge list.delete-metoden, ellers vil der være en fejl ved samtidig adgang. Men kompatibiliteten er den bedste, passende til samlingen
Den anden type: for(A a : list) { ..... } For hver metode er stadig en iterator, den første kaldes internt, og suppen ændres ikke, og der er andre begrænsninger ved denne cirkulære metode, så det anbefales ikke at bruge den Den kan kun bruges over JK1.5 med dårlig kompatibilitet Set er bedst at bruge denne
Den tredje type: for(int i=0; i<liste.size(); i++) { A a = list.get(i); ... } for løkke fungerer gennemgang af indholdet af en List-samling kun for List, fordi List er en ordnet samling , den interne er ikke låst, den højeste effektivitet, men når man skriver multitråding, bør problemet med samtidige operationer tages i betragtning! At gennemsøge en Set-samling er på samme måde som en List, men du kan ikke bruge en for-loop til at iterere gennem en Set-samling, fordi der ikke findes nogen get()-metode i Set-samlingen. Men det kan loopes med forbedringer Gennemgå Set-samlingen Set<String> set = new HashSet<String>(); set.add("qqq"); set.add("www"); set.add("eee"); set.add("rrr");
for(Streng s : set){ System.out.println("set="+s); }
|