|
Listan läpikäymiseen on kolme tapaa
List<A> list = uusi ArrayList<A>(); list.add(uusi A()); list.add(uusi A()); ...
Ensimmäinen tyyppi: for(Iterator<A> it = list.iterator(); it.hasNext(); ) { .... } Tämä reitti on syklissä Samaan aikaan, jos haluat poistaa elementin nautintoprosessista, voit kutsua vain it.remove -metodia, et voi käyttää list.remove -metodia, muuten samanaikaisessa käytössä tapahtuu virhe. Mutta yhteensopivuus on paras, sopii Collection-kokoelmaan
Toinen tyyppi: for(A a : lista) { ..... } Jokaisen menetelmän käyttö on edelleen iteraattori, ensimmäinen kutsutaan sisäisesti, keittoa ei muuteta, ja tässä kiertomenetelmässä on muita rajoituksia, joten sen käyttöä ei suositella Sitä voi käyttää vain JK1.5:n yläpuolella huonolla yhteensopivuudella. Set on paras käyttää tätä
Kolmas tyyppi: for(int i=0; i<list.size(); i++) { A a = list.get(i); ... } for loop, List-kokoelman sisällön läpikäyminen toimii vain Listalle, koska List on järjestetty kokoelma , sisäinen ei ole lukittu, mikä on korkein hyötysuhde, mutta monisäikeistä kirjoittaessa tulisi ottaa huomioon samanaikaisten operaatioiden ongelma! Set-kokoelman läpikäynti tapahtuu samalla tavalla kuin Listassa, mutta et voi käyttää for-silmukkaa Set-kokoelman läpikäymiseen, koska Set-kokoelmassa ei ole get()-menetelmää. Mutta sitä voi kiertää parannuksilla Läpikäy Set-kokoelma Set<String> set = uusi HashSet<String>(); set.add("qqq"); set.add("www"); set.add("eee"); set.add("rrr");
for(String s : set){ System.out.println("set="+s); }
|