循环遍历Java中的枚举
我有一个enum
Java的主要和中间的方向:
public enum Direction { NORTH, NORTHEAST, EAST, SOUTHEAST, SOUTH, SOUTHWEST, WEST, NORTHWEST }
我怎么能写一个循环遍历每个enum
值?
.values()
你可以在你的枚举上调用values()
方法。
for (Direction dir : Direction.values()) { // do what you want }
这个values()
方法是由编译器隐式声明的 。 所以它没有在Enum
文档中列出。
枚举值#():
for (Direction d : Direction.values()) { System.out.println(d); }
你可以这样做,如下所示:
for (Direction direction : EnumSet.allOf(Direction.class)) { // do stuff }
stream
在Java 8之前,我们需要使用for循环打印这些值,例如:
for (Direction dir : Direction.values()) { System.out.println(dir); }
但在Java 8中,我们也可以使用lambda和stream( Tutorial ):
Stream.of(Direction.values()).forEach(System.out::println);
for(Direction dir : Direction.values()) { }
如果你不关心这个命令,这应该工作:
Set<Direction> directions = EnumSet.allOf(Direction.class); for(Direction direction : directions) { // do stuff }
for (Direction d : Direction.values()) { //your code here }
Java8
Stream.of(Direction.values()).forEach(System.out::println);
来自Java5 +
for ( Direction d: Direction.values()){ System.out.println(d); }
尝试使用每个
for ( Direction direction : Direction.values()){ System.out.println(direction.toString()); }
这是如何遍历枚举:
private static void iterateEnumValues() { System.out.println("Iterating over Direction enum"); for(Direction direction : Direction.values()) { System.out.println("Enum = " + direction); } }
要了解更多关于通用枚举操作,请检查: 如何在java中使用枚举