循环遍历枚举值而不增强for循环

时间:2016-04-22 09:45:16

标签: java for-loop foreach enums

我正在尝试查看枚举列表Colors

的每个值

如果我使用:

for (AnotherClass.Colors color : AnotherClass.Colors.values()) {
     System.out.println(color);
}

我得到了理想的结果。我想知道这是否是使用for循环循环的唯一方法?我的意思是没有其他方法可以循环使用它吗?

2 个答案:

答案 0 :(得分:2)

使用Java 8,您可以改为使用Streams:

AnotherClass.Colors.values().forEach(color->System.out.println(color));

答案 1 :(得分:2)

枚举的values()方法返回一个数组。如果要遍历具有普通for循环的数组,它将如下所示:

AnotherClass.Colors[] values = AnotherClass.Colors.values();
for (int i = 0; i < values.length; ++i) {
    System.out.println(values[i]);
}

增强的for循环和枚举都是在Java 1.5中引入的,因此增强的for循环一直是迭代枚举值的明显方法。