Java Enum:一次获取多个值

时间:2012-05-26 08:50:02

标签: java enums multiple-value

如果我错了,请纠正我:

  1. enum是一种类型
  2. 某个枚举类型的对象一次只能获取1个枚举值
  3. 现在我有一个问题: 假设我已经在我的java程序中的某个地方定义了一个枚举(或其他一些适合该任务的数据结构;我无法命名,因为我正在寻找这样的数据结构来完成以下任务)。如果,不知何故,我在main(String [])中有一个枚举(或其他一些数据结构)对象,并且我希望它采用枚举(或其他一些数据结构)的多个值,我该怎么做?如果不是枚举,我应该使用哪种合适的数据结构?

    提前致谢!

2 个答案:

答案 0 :(得分:7)

你可以使用一个简单的数组,来自核心java.util API的任何集合也可以完成这项任务(比如列表或集合,它比使用数组更方便),但可能你所追求的是{ {3}}:

enum Monster {
    GOBLIN, ORC, OGRE;
}

public class Main {
    public static void main(final String[] args) {
        final EnumSet<Monster> bigGuys = EnumSet.of(Monster.ORC, Monster.OGRE);

        for (final Monster act : Monster.values()) {
            System.out.println(bigGuys.contains(act));
        }
    }
}

答案 1 :(得分:2)

听起来你正在寻找:

  • java.util.EnumSet
  • varargs:method(MyEnum ...values)
  • 一个简单的数组:MyEnum[]

我通常更喜欢自己的java.util.EnumSet,它很容易使用,并且可以快速检查它是否包含某个valaue等。它也是or标志的替代。