循环遍历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中使用枚举