|
Det finnes tre måter å bevege seg gjennom en liste på
Listeliste<A> = ny ArrayList<A>(); list.add(ny A()); list.add(ny A()); ...
Den første typen: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } Denne veien er i en syklus Samtidig, hvis du vil fjerne et element i nytelsesprosessen, kan du bare kalle it.remove metoden, du kan ikke bruke list.remove metoden, ellers vil det oppstå en feil ved samtidig tilgang. Men kompatibiliteten er den beste, egnet for Collection-samlingen
Den andre typen: for(A a : list) { ..... } For hver metode er fortsatt en iterator, den første kalles internt, og suppen endres ikke, og det finnes andre begrensninger ved denne sirkulære metoden, så det anbefales ikke å bruke den Den kan bare brukes over JK1.5 med dårlig kompatibilitet. Settet er best å bruke denne
Den tredje typen: for(int i=0; i<list.size(); i++) { A a = list.get(i); ... } for løkke, fungerer gjennomgang av innholdet i en List-samling bare for List, fordi List er en ordnet samling , den interne er ikke låst, den høyeste effektiviteten, men når man skriver multitråding, bør problemet med samtidige operasjoner tas i betraktning! Å gå gjennom en Set-samling er på samme måte som en List, men du kan ikke bruke en for-løkke for å iterere gjennom en Set-samling fordi det ikke finnes noen get()-metode i Set-samlingen. Men det kan loopes med forbedringer Gjennomgå Set-samlingen Set<String> set = ny HashSet<String>(); set.add("qqq"); set.add("www"); set.add("eee"); set.add("rrr");
for(String s : set){ System.out.println("set="+s); }
|