2012-02-28 83 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