1729 Stimmen

Wie funktioniert die Java-'for each'-Schleife?

Bedenken Sie:

List<String> someList = new ArrayList<String>();
// add "monkey", "donkey", "skeleton key" to someList

for (String item : someList) {
    System.out.println(item);
}

Was wäre das Äquivalent for Schleife aussehen, ohne die Verwendung der für jede Syntax?

2voto

Rei Brown Punkte 177

Das sieht verrückt aus, aber es funktioniert

List<String> someList = new ArrayList<>(); //has content
someList.forEach(System.out::println);

Das funktioniert. Magie

1 Stimmen

Dies erfordert Java 1.8 +

4 Stimmen

Beantwortet die Frage nicht einmal im Entferntesten

0 Stimmen

Eine Erklärung wäre angebracht.

2voto

nabayram Punkte 101

Ich denke, das wird funktionieren:

for (Iterator<String> i = someList.iterator(); i.hasNext(); ) {
   String x = i.next();
   System.out.println(x);
}

1 Stimmen

Bitte erläutern Sie Ihren Code und versuchen Sie, die Frage "Wie funktioniert die Java 'for each' Schleife?" zu beantworten.

2voto

Java-Dev Punkte 408

Der Code würde lauten:

import java.util.ArrayList;
import java.util.List;

public class ForLoopDemo {

  public static void main(String[] args) {

    List<String> someList = new ArrayList<String>();

    someList.add("monkey");
    someList.add("donkey");
    someList.add("skeleton key");

    // Iteration using For Each loop
    System.out.println("Iteration using a For Each loop:");
    for (String item : someList) {
      System.out.println(item);
    }

    // Iteration using a normal For loop
    System.out.println("\nIteration using normal For loop: ");
    for (int index = 0; index < someList.size(); index++) {
      System.out.println(someList.get(index));
    }
  }
}

2 Stimmen

1) Dies ist falsch. Das direkte Äquivalent zu einem for-each auf eine iterable (wie eine Liste) verwendet einen Iterator. So steht es in der JLS. Schlagen Sie es nach. 2) Wir brauchen nicht noch mehr Antworten auf diese Frage. Bitte verschwenden Sie nicht die Zeit der anderen, indem Sie noch eine weitere Antwort auf alte Fragen hinzufügen. Finden Sie neue Fragen, die Sie beantworten können.

1voto

IsraelCena Punkte 11

Verwendung von forEach :

int[] numbers = {1,2,3,4,5};

Arrays.stream(numbers).forEach(System.out::println);

Antwort:

1
2
3
4
5

The process finished with exit code 0

PS: Sie benötigen ein Array ( int[] numbers ), und import java.util.Arrays;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X