Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 14824|Válasz: 0

[Kommunikáció] java:list和set集合的遍历

[Linket másol]
Közzétéve 2015. 01. 04. 13:30:48 | | |

Három módja van a listán való áthaladásnak   
   
   List<A> list = új ArrayList<A>();   
   list.add(új A());   
   list.add(új A());   
   ...   
   
  Az első típus:   
   for(Iterator<A> it = list.iterator();    it.hasNext();    )    {   
       ....   
   }   
   Ez az út egy ciklusban van
Ugyanakkor, ha egy elemet szeretnél eltávolítani az élvezet folyamatából, csak az it.remove metódupontot hívhatod, nem használhatod a list.remove metódust, különben egyidejű hozzáférési hiba következik.   
De a kompatibilitás a legjobb, illik a Gyűjtemény gyűjteményéhez
   
   A második típus:   
   for(A a : lista) {   
       .....   
   }   
  Minden módszerhez még mindig iterátor, az elsőt belső hívják, a leves nem változik, és ennek a körkörös módszernek vannak más korlátai, ezért nem ajánlott használni   
  Csak JK1.5 felett használható, ha kompatibilitás nem volt gyenge, a Set a legjobb ezt használni

   A harmadik típus:   
   for(int i=0;    i<list.size();    i++) {   
       A a = list.get(i);   
       ...   
   }   
  for loop, a List gyűjtemény tartalmán való áthaladás csak a List-nél működik, mert a List egy rendezett gyűjtemény
, a belső nem zárolva, ami a legmagasabb hatékonyság, de a többszálas műveletek írása során figyelembe kell venni az egyidejű műveletek problémáját!

A Set gyűjtemény áthaladása ugyanúgy történik, mint egy Listában, de nem használhatsz for hurkot a Set gyűjtemény iterációjához, mert nincs get() módszer a Set gyűjteményben.
  De fejleszthető, de lehet újraforgatni
  Áthaladás a Készlet gyűjteményében
  Set<String> set = új HashSet<String>();
  set.add("qqq");
  set.add("www");
  set.add("eee");
  set.add("rrr");
  
  for(String s : set){
   System.out.println("set="+s);
  }






Előző:A List gyűjtemény áthaladása java-ban és két implementációs osztály összehasonlító elemzése
Következő:Ő egy idősebb testvér, egy loli lány, miért adott neki egy csészét?
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com