logo

Voor elke lus in Java

Voorwaarde: besluitvorming in Java
For-each is een andere techniek voor het doorkruisen van arrays, zoals for loop, while loop, do-while loop geïntroduceerd in Java5.

  • Het begint met het trefwoord voor zoals een normale for-loop.
  • In plaats van een lustellervariabele te declareren en te initialiseren, declareert u een variabele die van hetzelfde type is als het basistype van de array, gevolgd door een dubbele punt, die vervolgens wordt gevolgd door de arraynaam.
  • In de hoofdtekst van de lus kunt u de lusvariabele gebruiken die u hebt gemaakt in plaats van een geïndexeerd array-element te gebruiken.
  • Het wordt vaak gebruikt om een ​​array of een Collections-klasse te herhalen (bijvoorbeeld ArrayList)

Syntaxis:

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

Eenvoudig programma met voor elke lus:



Java

commando chown




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

>

>

dynamische array java
Uitvoer

10 50 60 80 90>

De bovenstaande syntaxis is gelijk aan:

for (int i=0; i  Java       // Java program to illustrate  // for-each loop  class For_Each  {   public static void main(String[] arg)   {   {   int[] marks = { 125, 132, 95, 116, 110 };     int highest_marks = maximum(marks);   System.out.println('The highest score is ' + highest_marks);   }   }   public static int maximum(int[] numbers)   {   int maxSoFar = numbers[0];     // for each loop   for (int num : numbers)   {   if (num>maxSoFar) { maxSoFar = num;   } } retourneer maxSoFar;   } } Uitvoer De hoogste score is 132 Beperkingen bij de besluitvorming over for-each-lussen For-each-lussen zijn niet geschikt als je de array wilt wijzigen: for (int num: marks) {// verandert alleen num, niet het array-element aantal = aantal*2; } 2. For-each-lussen houden index niet bij. We kunnen dus geen array-index verkrijgen met de For-Each-lus voor (int num: getallen) { if (num == target) { return ???; // ken de index van num } } 3. For-each itereert alleen in enkele stappen vooruit over de array // kan niet worden geconverteerd naar een for-each lus voor (int i=numbers.length-1; i>0 ; ik--) { System.out.println(nummers[i]); } 4. For-each kan niet twee besluitvormingsinstructies tegelijk verwerken // kan niet eenvoudig worden geconverteerd naar een for-each-lus voor (int i=0; i 5. For-each heeft ook enige prestatieoverhead ten opzichte van eenvoudige iteratie: Java / *pakket wat dan ook //schrijf hier geen pakketnaam */ import java.io.*; import java.util.*; import java.util.*; public static void main (String[] args) { Lijstlijst = new ArrayList(); starttijd; lange eindtijd (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 = lijst.get(j);   } endTime = Kalender.getInstance().getTimeInMillis();   System.out.println('Gebruik [int j = list.size(); j> size ; j--] :: ' + (endTime - startTime) + ' ms');   } } // Deze code is bijgedragen door Ayush Choudhary @gfg(code_ayush) Uitvoer Voor elke lus :: 45 ms Met behulp van collection.size() :: 11 ms Door eerst collection.size() te berekenen :: 13 ms Met behulp van [int j = lijst.grootte(); j> maat; j--] :: 15 ms Gerelateerde artikelen: For-each in C++ versus Java Iterator versus For-each in Java>