945 Stimmen

Eine 'for'-Schleife zur Iteration über eine Aufzählung in Java

Ich habe eine enum in Java für die Kardinal- und Zwischenrichtungen:

public enum Direction {
   NORTH,
   NORTHEAST,
   EAST,
   SOUTHEAST,
   SOUTH,
   SOUTHWEST,
   WEST,
   NORTHWEST
}

Wie kann ich eine for Schleife, die jeden dieser Punkte durchläuft enum Werte?

0 Stimmen

7voto

Raghu K Nair Punkte 3594

Java8

Stream.of(Direction.values()).forEach(System.out::println);

von Java5+

for ( Direction d: Direction.values()){
 System.out.println(d);
}

1 Stimmen

Oh, Entschuldigung. Ich habe gerade bemerkt, dass akhil_mittal die ähnliche Antwort bereits gepostet hat.

0 Stimmen

Wann und warum sollte ich Stream.of(o).forEach verwenden? Die for-Schleife scheint viel besser lesbar zu sein.

0 Stimmen

Nicht, wenn Sie mit der funktionalen Programmierung vertraut sind.

5voto

NiVeR Punkte 9260

Mehr Methoden in java 8:

Verwendung von EnumSet con forEach

EnumSet.allOf(Direction.class).forEach(...);

Verwendung von Arrays.asList con forEach

Arrays.asList(Direction.values()).forEach(...);

2voto

Sarat Kumar Punkte 71

Können wir einen Filter (JAVA 8) wie diesen verwenden.

Stream.of(Direction.values()).filter(name -> !name.toString().startsWith("S")).forEach(System.out::println);

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