2012-02-28 165 views
0

對不起,很noob問題。 讓我們假設我有一個像這樣用一個while循環迭代枚舉

public enum MyElementType { 
TYPE_ONE, 
TYPE_TWO, 
TYPE_THREE; 
} 

枚舉當我想遍歷這個枚舉,我總是看到這樣的解決方案:

for(MyElementType type: MyElementType.values()) 
{ 
//do things 
} 

我不知道是否存在與while循環可行的解決方案。 看到Enumeration接口暴露了方法 hasMoreElements() 但我不知道如何將這些東西鏈接在一起。 有什麼建議嗎?

+3

你爲什麼要while循環? – 2012-02-28 10:05:37

回答

3

你爲什麼要使用while循環,而不是換每次更通常看到了什麼?

在任何情況下,這是很簡單的

Set<MyElementType> elements = EnumSet.allOf(MyElementType.class); 
Iterator<MyElementType> it = elements.iterator(); 
while (it.hasNext()) { 
    MyElementType el = it.next(); 
    // etc 
} 

// or 
Iterator<MyElementType> it = Arrays.asList(MyElementType.values()).iterator(); 
+0

我想使用while循環,因爲我想檢查while語句中的另一個條件來決定是否繼續迭代(而且我真的不喜歡在for中使用「break」)。無論如何,這件事讓我感到愉快,而且在我看來,這是學習一些我不知道的東西的好機會。 – MaVVamaldo 2012-02-28 10:09:07