|
Det finns tre sätt att ta sig igenom en lista
List<A> list = ny ArrayList<A>(); list.add (nytt A()); list.add (nytt A()); ...
Den första typen: för(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } Det här sättet är i en cykel Samtidigt, om du vill ta bort ett element i njutningsprocessen, kan du bara anropa it.rea-metoden, du kan inte använda list.delete-metoden, annars uppstår ett fel vid samtidig åtkomst. Men kompatibiliteten är bäst, lämplig för samlingen
Den andra typen: for(A a : list) { ..... } För varje metod är fortfarande en iterator, den första kallas internt, och soppan ändras inte, och det finns andra begränsningar med denna cirkulära metod, så det rekommenderas inte att använda den Den kan bara användas över JK1.5 med dålig kompatibilitet Set, det är bäst att använda denna
Den tredje typen: för(int i=0; i<list.size(); i++) { A a = list.get(i); ... } för loop, fungerar det att gå igenom innehållet i en List-samling endast för List, eftersom Listan är en ordnad samling , det interna är inte låst, den högsta effektiviteten, men när man skriver multitrådning bör problemet med samtidiga operationer beaktas! Att traversera en Set-samling är på samma sätt som en List, men du kan inte använda en for-loop för att iterera genom en Set-samling eftersom det inte finns någon get()-metod i Set-samlingen. Men det kan loopas med förbättringar Genomgå samlingen Set<String> set = new HashSet<String>(); set.add("qqq"); set.add("www"); set.add("eee"); set.add("rrr");
for(String s : set){ System.out.println("set="+s); }
|