用while循环迭代枚举

时间:2012-02-28 09:58:07

标签: java enums while-loop

抱歉这个非常棒的问题。 我们假设我有一个这样的枚举

public enum MyElementType {
TYPE_ONE,
TYPE_TWO,
TYPE_THREE;
}

当我想循环这个枚举时,我总是看到这个解决方案:

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

我想知道是否存在while循环的可行解决方案。 在Seraching我看到Enumeration接口公开了该方法     的hasMoreElements() 但我不知道如何将事物联系在一起。 有什么建议吗?

2 个答案:

答案 0 :(得分:3)

为什么你想使用while循环而不是你通常看到的for-each?

无论如何,这很简单

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();

答案 1 :(得分:1)