logo

Zanka za vsako v Javi

Predpogoj: Odločanje v Javi
For-each je še ena tehnika prečkanja matrike, kot je for loop, while loop, do-while loop, predstavljena v Javi 5.

  • Začne se s ključno besedo za kot običajna for-zanka.
  • Namesto da deklarirate in inicializirate spremenljivko števca zanke, deklarirate spremenljivko, ki je enakega tipa kot osnovni tip matrike, ki ji sledi dvopičje, ki mu nato sledi ime matrike.
  • V telesu zanke lahko namesto elementa indeksirane matrike uporabite spremenljivko zanke, ki ste jo ustvarili.
  • Običajno se uporablja za ponavljanje po matriki ali razredu zbirk (npr. ArrayList)

Sintaksa:

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

Preprost program z za vsako zanko:



Java

vklopi javo




/*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 +>' '>);> >}> }>

>

tuple java

>

Izhod

10 50 60 80 90>

Zgornja sintaksa je enakovredna:

maxSoFar) { maxSoFar = num; } } return maxSoFar; } } Izhod Najvišja ocena je 132 Omejitve odločanja zanke for-each Zanke for-each niso primerne, če želite spremeniti matriko: for (int num : oznake) { // spremeni samo num, ne elementa matrike num = num*2; } 2. Zanke for-each ne sledijo indeksu. Torej ne moremo pridobiti matričnega indeksa z uporabo zanke For-Each for (int num : numbers) { if (num == target) { return ???; // ne poznam indeksa num } } 3. For-each le ponavlja naprej po matriki v posameznih korakih // ni mogoče pretvoriti v zanko for-each for (int i=numbers.length-1; i>0 ; i--) { System.out.println(numbers[i]); } 4. For-each ne more obdelati dveh stavkov za sprejemanje odločitev hkrati // ni mogoče preprosto pretvoriti v zanko for-each for (int i=0; i 5. For-each ima tudi nekaj dodatnih stroškov glede zmogljivosti v primerjavi s preprosto iteracijo: Java / *paket karkoli //ne pišite imena paketa */ import java.util.*; class GFG { public static void main (String[] args) { List list = new ArrayList(); začetni čas; dolgi končni čas; za (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 = list.get(j); } endTime = Calendar.getInstance().getTimeInMillis(); System.out.println('Uporaba [int j = list.size(); j> velikost ; j--] :: ' + (končni čas - začetni čas) + ' ms'); } } // To kodo je prispeval Ayush Choudhary @gfg(code_ayush) Izhod za vsako zanko :: 45 ms z uporabo collection.size() :: 11 ms z izračunom collection.size() najprej :: 13 ms z uporabo [int j = list.size(); j> velikost ; j--] :: 15 ms Sorodni članki: For-each v C++ proti Java Iterator proti For-each v Javi>>>