values recorrer enum java enums for-loop

recorrer - Un bucle ''for'' para iterar sobre una enumeración en Java



java enum values (10)

Corrientes

Antes de Java 8

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

Java 8

También podemos hacer uso de lambda y streams ( Tutorial ):

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

Tengo una enum en Java para las direcciones cardinales e intermedias:

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

¿Cómo puedo escribir un bucle for que recorra cada uno de estos valores de enum ?


.values()

Puede llamar al método de values() en su enumeración.

for (Direction dir : Direction.values()) { // do what you want }

Este método de values() es declarado implícitamente por el compilador . Por lo tanto, no está listado en Enum doc.


Enumerar # valores ():

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


Java8

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

desde Java5 +

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


Más métodos en java 8:

Usando EnumSet con forEach

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

Usando Arrays.asList con forEach

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


Puede hacerlo de la siguiente manera:

for (Direction direction : EnumSet.allOf(Direction.class)) { // do stuff }


Si no te importa el orden esto debería funcionar:

Set<Direction> directions = EnumSet.allOf(Direction.class); for(Direction direction : directions) { // do stuff }


Trate de usar una para cada

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


for (Direction d : Direction.values()) { //your code here }


for(Direction dir : Direction.values()) { }