2016-04-22 138 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));