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())
{
}