2016-04-22 139 views
-2

我想通过我的枚举列表Colors循环通过枚举值没有增强的for循环

的每一个值,如果我使用:

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

我得到了想要的结果。我想知道如果这是唯一的方法来使用for循环来循环这个?我的意思是没有其他的方式来循环这个?

+0

发射日食或任何你使用的东西,玩一会儿,稍微偷看一下文档应该给你你正在寻找的东西,并且应该给你很好的。 –

回答

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环一直是显而易见的方法遍历枚举值。

+0

谢谢!我想我必须创建另一个数组,然后遍历它,如果我不想使用增强for循环。 – Duxa

+0

@AP并非完全正确。你不必创建另一个数组,你可以迭代'values()'返回的数组。 –

+0

@Sнаđошƒаӽ - 我可以用传统的for循环来做到吗?因为多数民众赞成是什么使用增强for循环,正在通过values()正确返回数组迭代? – Duxa

1

与Java 8中,您可以使用流来代替:

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