1、位域(Bit field):使用or 运算将几个常量合并到一个集合中
- 位操作,可以有效地执行 AND 、OR 这样的位操作
- 但是 位域比int 常量枚举缺点更多
2、java.util 包里面的EnumSet 类是有效的替代方案
- 从单个枚举类型中提取的多个值的多个集合
- 整个EnumSet 就是用单个long来表示的,内部实现用到了大量位运算,性能可与位域媲美
- EnumSet 提供静态工厂,轻松创建集合
- EnumSet 集 位域的性能优势和枚举类型所有优点于一身
- 缺点是:无法创建不可变的EnumSet 集合