logo

Jokaiselle silmukalle Javassa

Esitiedot: Päätöksenteko Java-kielellä
For-each on toinen taulukon läpikulkutekniikka, kuten for loop, while loop, do-while -silmukka, joka esiteltiin Java5:ssä.

  • Se alkaa avainsanalla varten kuin normaali for-silmukka.
  • Silmukkalaskurimuuttujan ilmoittamisen ja alustamisen sijaan ilmoitat muuttujan, joka on samaa tyyppiä kuin taulukon perustyyppi, ja sen jälkeen kaksoispiste, jota seuraa taulukon nimi.
  • Silmukan rungossa voit käyttää luomaasi silmukkamuuttujaa indeksoidun taulukkoelementin sijaan.
  • Sitä käytetään yleisesti iteroitaessa taulukon tai kokoelmaluokan (esim. ArrayList) yli.

Syntaksi:

for (type var : array) { statements using var; }>

Yksinkertainen ohjelma jokaiselle silmukalle:



Java

lajittelu listaan ​​javassa




/*package whatever //do not write package name here */> > import> java.io.*;> > class> Easy> > {> > >public> static> void> main(String[] args)> > >{> > >// array declaration> > >int> ar[] = {>10>,>50>,>60>,>80>,>90> };> > >for> (>int> element : ar)> > >System.out.print(element +>' '>);> >}> }>

>

>

Lähtö

armstrongin numero
10 50 60 80 90>

Yllä oleva syntaksi vastaa:

maxSoFar) { maxSoFar = numero; } } return maxSoFar; } } Tulos Korkein pistemäärä on 132 Foreach silmukan päätöksenteon rajoitukset Foreach-silmukat eivät ole sopivia, kun haluat muokata taulukkoa : for (int num : marks) { // muuttaa vain numeroa, ei taulukon elementtiä numero = numero*2; } 2. For-each-silmukat eivät seuraa indeksiä . Joten emme voi saada taulukkoindeksiä For-Each-silmukalla for (int num : numbers) { if (num == kohde) { return ???; // en tiedä numeron indeksiä } } 3. For-each vain iteroi eteenpäin taulukon yli yksittäisissä vaiheissa // ei voida muuntaa for-each -silmukaksi for (int i=numbers.length-1; i>0 i--) { System.out.println(numbers[i]); } 4. For-each ei voi käsitellä kahta päätöksentekolauseketta kerralla // ei voida helposti muuntaa for-each -silmukaksi for (int i=0; i 5. For-eachilla on myös jonkin verran suorituskykyä yksinkertaisen iteroinnin aikana: Java / *package whatever //älä kirjoita paketin nimeä tähän */ tuonti java.util.* GFG { public static void main (String[] args) { List list = new ArrayList(); aloitusaika; pitkä loppuaika (int i = 0; i<1000000; i++) { list.add(i); } // Type 1 startTime = Calendar.getInstance().getTimeInMillis(); for (int i : list) { int a = i; } endTime = Calendar.getInstance().getTimeInMillis(); System.out.println('For each loop :: ' + (endTime - startTime) + ' ms'); // Type 2 startTime = Calendar.getInstance().getTimeInMillis(); for (int j = 0; j int a = list.get(j); } endTime = Calendar.getInstance().getTimeInMillis(); System.out.println('Using collection.size() :: ' + (endTime - startTime) + ' ms'); // Type 3 startTime = Calendar.getInstance().getTimeInMillis(); int size = list.size(); for (int j = 0; j int a = list.get(j); } endTime = Calendar.getInstance().getTimeInMillis(); System.out.println('By calculating collection.size() first :: ' + (endTime - startTime) + ' ms'); // Type 4 startTime = Calendar.getInstance().getTimeInMillis(); for(int j = list.size()-1; j>= 0; j--) { int a = lista.get(j); } endTime = Calendar.getInstance().getTimeInMillis(); System.out.println('Käytetään [int j = list.size(); j> koko ; j--] :: ' + (endTime - startTime) + ' ms'); } } // Tämän koodin tarjoaa Ayush Choudhary @gfg(code_ayush) Tulos jokaiselle silmukalle :: 45 ms Collection.size():n avulla :: 11 ms Laskemalla collection.size() ensin :: 13 ms käyttämällä [int j = lista.koko(); j> koko ; j--] :: 15 ms Aiheeseen liittyviä artikkeleita: For-each C++:ssa vs Java Iterator vs For-each Javassa>>