Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 14824|Atbildi: 0

[Paziņojums] java:list和set集合的遍历

[Kopēt saiti]
Publicēts 04.01.2015 13:30:48 | | |

Ir trīs veidi, kā šķērsot sarakstu   
   
   List<A> list = new ArrayList<A>();   
   list.add(jauns A());   
   list.add(jauns A());   
   ...   
   
  Pirmais veids:   
   for(Iterator<A> it = list.iterator();    it.hasNext();    )    {   
       ....   
   }   
   Šis veids ir ciklā
Tajā pašā laikā, ja vēlaties noņemt elementu prieka procesā, varat izsaukt tikai to.noņemt metodi, jūs nevarat izmantot list.remove metodi, pretējā gadījumā radīsies vienlaicīgas piekļuves kļūda.   
Bet saderība ir vislabākā, piemērota kolekcijas kolekcijai
   
   Otrais veids:   
   for(A a : saraksts) {   
       .....   
   }   
  Katrai metodei joprojām ir iterators, pirmais tiek saukts iekšēji, un zupa netiek mainīta, un šai apļveida metodei ir citi ierobežojumi, tāpēc nav ieteicams to izmantot   
  To var izmantot tikai virs JK1.5 ar sliktu saderību Vislabāk ir izmantot šo

   Trešais veids:   
   for(int i=0;    i<list.size();    i++) {   
       A a = list.get(i);   
       ...   
   }   
  cilpai Saraksta kolekcijas satura šķērsošana darbojas tikai Sarakstam, jo Saraksts ir sakārtota kolekcija
, iekšējais nav bloķēts, visaugstākā efektivitāte, bet, rakstot multithreading, jāapsver vienlaicīgu operāciju problēma!

Kopu kolekcijas šķērsošana ir tāda pati kā saraksta šķērsošana, taču nevar izmantot cilpu for, lai atkārtotu kopu kolekciju, jo kopu kolekcijā nav metodes get().
  Bet to var cilpināt ar uzlabojumiem
  Šķērsojiet komplektu kolekciju
  Set<String> set = jauns HashSet<String>();
  set.add("qqq");
  set.add("www");
  set.add("eee");
  set.add("rrr");
  
  for(Virkne s : set){
   System.out.println("set="+s);
  }






Iepriekšējo:Sarakstu kolekcijas šķērsošana java un divu ieviešanas klašu salīdzinošā analīze
Nākamo:Viņš ir vecākais brālis, viņš ir loli meitene, kāpēc viņš viņai iedeva kausu?
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com