java枚举类循环 - java枚举转list




'for'循环遍历Java中的枚举 (7)

.values()

你可以在你的枚举上调用values()方法。

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

这个values()方法由编译器隐式声明 。 所以它没有在Enum文档中列出。

我在Java中有一个针对主要和中间方向的enum

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

我怎样才能写一个迭代遍历每个enum值的for循环?


在Java 8之前,我们需要使用for循环打印这些值,如:

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

但在Java 8中,我们也可以使用lambda和streams( Tutorial ):

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

你可以这样做,如下所示:

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

如果你不关心这个命令,这应该工作:

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

枚举值#():

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

这是如何迭代Enum的:

private static void iterateEnumValues() {
        System.out.println("Iterating over Direction enum");
        for(Direction direction : Direction.values())
        {
            System.out.println("Enum = " + direction);
        }
}

要了解更多关于通用Enum操作的信息,请查看: 如何在java中使用Enums


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

}




for-loop